إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:
Databricks SQL
Databricks Runtime 13.3 LTS وما فوق
قراءة الملفات ضمن موقع متوفر وإرجاع البيانات في نموذج جدولي.
يدعم قراءة JSONتنسيقات الملفات BINARYFILEPARQUETORC CSVXMLTEXTAVROو.
يمكنه الكشف عن تنسيق الملف تلقائيا والاستدلال على مخطط موحد عبر جميع الملفات.
بناء الجملة
read_files(path [, option_key => option_value ] [...])
الوسيطات
تتطلب هذه الدالة استدعاء معلمة مسماة لمفاتيح الخيارات.
path: معSTRINGURI لموقع البيانات. يدعم القراءة من Azure Data Lake Storage Gen2 ('abfss://') وS3 (s3://) وGoogle Cloud Storage ('gs://'). يمكن أن تحتوي على globs. راجع اكتشاف الملفات لمزيد من التفاصيل.option_key: اسم خيار التكوين. تحتاج إلى استخدام backticks (') للخيارات التي تحتوي على نقاط (.).option_value: تعبير ثابت لتعيين الخيار إليه. يقبل القيم الحرفية والدالات العددية.
المرتجعات
جدول يتكون من البيانات من الملفات المقروءة ضمن المحدد path.
اكتشاف الملفات
read_files يمكن قراءة ملف فردي أو قراءة الملفات ضمن دليل متوفر. read_files يكتشف جميع الملفات ضمن الدليل المقدم بشكل متكرر ما لم يتم توفير glob ، ما يرشد read_files إلى الإعادة إلى نمط دليل معين.
تصفية الدلائل أو الملفات باستخدام أنماط glob
يمكن استخدام أنماط Glob لتصفية الدلائل والملفات عند توفيرها في المسار.
| النمط | الوصف |
|---|---|
? |
يتطابق مع أي حرف واحد |
* |
يطابق صفرا أو أكثر من الأحرف |
[abc] |
يطابق حرفا واحدا من مجموعة الأحرف {a,b,c}. |
[a-z] |
يطابق حرفا واحدا من نطاق الأحرف {a... z}. |
[^a] |
يطابق حرفا واحدا ليس من مجموعة أحرف أو نطاق {a}. لاحظ أنه ^ يجب أن يحدث الحرف على الفور إلى يمين قوس الفتح. |
{ab,cd} |
يطابق سلسلة من مجموعة السلسلة {ab، cd}. |
{ab,c{de, fh}} |
يطابق سلسلة من مجموعة السلسلة {ab، cde، cfh}. |
read_files يستخدم globber الصارم ل Auto Loader عند اكتشاف الملفات باستخدام globs. يتم تكوين هذا بواسطة useStrictGlobber الخيار . عند تعطيل globber الصارم، يتم إسقاط الشرطة المائلة اللاحقة (/) ويمكن توسيع نمط نجمي مثل /*/ إلى اكتشاف أدلة متعددة. راجع الأمثلة أدناه لمعرفة الفرق في السلوك.
| النمط | مسار الملف | تم تعطيل globber الصارم | تم تمكين globber الصارم |
|---|---|---|---|
/a/b |
/a/b/c/file.txt |
نعم | نعم |
/a/b |
/a/b_dir/c/file.txt |
لا | لا |
/a/b |
/a/b.txt |
لا | لا |
/a/b/ |
/a/b.txt |
لا | لا |
/a/*/c/ |
/a/b/c/file.txt |
نعم | نعم |
/a/*/c/ |
/a/b/c/d/file.txt |
نعم | نعم |
/a/*/d/ |
/a/b/c/d/file.txt |
نعم | لا |
/a/*/c/ |
/a/b/x/y/c/file.txt |
نعم | لا |
/a/*/c |
/a/b/c_file.txt |
نعم | لا |
/a/*/c/ |
/a/b/c_file.txt |
نعم | لا |
/a/*/c |
/a/b/cookie/file.txt |
نعم | لا |
/a/b* |
/a/b.txt |
نعم | نعم |
/a/b* |
/a/b/file.txt |
نعم | نعم |
/a/{0.txt,1.txt} |
/a/0.txt |
نعم | نعم |
/a/*/{0.txt,1.txt} |
/a/0.txt |
لا | لا |
/a/b/[cde-h]/i/ |
/a/b/c/i/file.txt |
نعم | نعم |
استنتاج المخطط
يمكن توفير مخطط الملفات بشكل صريح مع read_files schema الخيار . عند عدم توفير المخطط، read_files يحاول استنتاج مخطط موحد عبر الملفات المكتشفة، ما يتطلب قراءة جميع الملفات ما لم يتم استخدام عبارة LIMIT . حتى عند استخدام LIMIT استعلام، قد تتم قراءة مجموعة ملفات أكبر مما هو مطلوب لإرجاع مخطط أكثر تمثيلا للبيانات. يضيف Databricks تلقائيا عبارة LIMIT للاستعلامات SELECT في دفاتر الملاحظات ومحرر SQL إذا لم يقدم المستخدم واحدة.
schemaHints يمكن استخدام الخيار لإصلاح المجموعات الفرعية للمخطط المستنتج. راجع تجاوز استنتاج المخطط مع تلميحات المخطط للحصول على مزيد من التفاصيل.
rescuedDataColumn يتم توفير افتراضيا لإنقاذ أي بيانات لا تتطابق مع المخطط. راجع ما هو عمود البيانات الذي تم إنقاذه؟ لمزيد من التفاصيل. يمكنك إسقاط rescuedDataColumn عن طريق تعيين الخيار schemaEvolutionMode => 'none'.
استنتاج مخطط القسم
read_files يمكن أيضا استنتاج تقسيم الأعمدة إذا تم تخزين الملفات ضمن دلائل مقسمة على نمط Hive، أي /column_name=column_value/. schema إذا تم توفير، تستخدم أعمدة القسم المكتشفة الأنواع المتوفرة schemaفي . إذا لم تكن أعمدة القسم جزءا من المقدمة schema، تجاهل أعمدة القسم المستنتجة.
إذا كان هناك عمود موجود في كل من مخطط القسم وفي أعمدة البيانات، يتم استخدام القيمة المقروءة من قيمة القسم بدلا من قيمة البيانات. إذا كنت ترغب في تجاهل القيم الواردة من الدليل واستخدام عمود البيانات، يمكنك توفير قائمة أعمدة الأقسام في قائمة مفصولة بفواصل مع partitionColumns الخيار .
partitionColumns يمكن أيضا استخدام الخيار لإرشاد read_files الأعمدة المكتشفة المراد تضمينها في المخطط النهائي المستنتج. يتجاهل توفير سلسلة فارغة كافة أعمدة القسم.
schemaHints يمكن أيضا توفير الخيار لتجاوز المخطط المستنتج لعمود قسم.
TEXT يحتوي التنسيقان و BINARYFILE على مخطط ثابت، ولكنهما read_files يحاولان أيضا استنتاج التقسيم لهذه التنسيقات عندما يكون ذلك ممكنا.
الاستخدام في جداول الدفق
read_files يمكن استخدامها في دفق الجداول لاستيعاب الملفات في Delta Lake. read_files يستفيد من "المحمل التلقائي" عند استخدامه في استعلام جدول دفق. يجب استخدام STREAM الكلمة الأساسية مع read_files. راجع ما هو المحمل التلقائي؟ لمزيد من التفاصيل.
عند استخدامه في استعلام دفق، read_files يستخدم عينة من البيانات للاستدلال على المخطط، ويمكن أن يتطور المخطط أثناء معالجة المزيد من البيانات. راجع تكوين استنتاج المخطط وتطوره في Auto Loader لمزيد من التفاصيل.
الخيارات
- الخيارات الأساسية
- خيارات عامة
JSONخياراتCSVخياراتXMLخياراتPARQUETخياراتAVROخياراتBINARYFILEخياراتTEXTخياراتORCخيارات- خيارات الدفق
الخيارات الأساسية
| خيار |
|---|
formatالنوع: Stringتنسيق ملف البيانات في المسار المصدر. يتم الاستدلال التلقائي إذا لم يتم توفيره. تتضمن القيم المسموح بها ما يلي: - avro: ملف Avro- binaryFile: ملف ثنائي- csv: قراءة ملفات CSV- json: ملف JSON- orc: ملف ORC- parquet: قراءة ملفات Parquet باستخدام Azure Databricks- text: الملفات النصية- xml: قراءة ملفات XML وكتابتهاالقيمة الافتراضية: بلا |
inferColumnTypesالنوع: Booleanما إذا كنت تريد استنتاج أنواع الأعمدة الدقيقة عند الاستفادة من استنتاج المخطط. بشكل افتراضي، يتم استنتاج الأعمدة عند استنتاج مجموعات بيانات JSON وCSV. راجع استنتاج المخطط لمزيد من التفاصيل. لاحظ أن هذا هو عكس الإعداد الافتراضي للتحميل التلقائي. قيمة افتراضية: true |
partitionColumnsالنوع: Stringقائمة مفصولة بفواصل لأعمدة أقسام نمط Hive التي ترغب في استنتاجها من بنية الدليل للملفات. أعمدة قسم نمط Apache Hive هي أزواج قيم المفاتيح مجتمعة بعلامة المساواة مثل <base-path>/a=x/b=1/c=y/file.format. في هذا المثال، أعمدة القسم هي aو bو.c بشكل افتراضي، ستتم إضافة هذه الأعمدة تلقائيا إلى المخطط الخاص بك إذا كنت تستخدم استنتاج المخطط وتوفر <base-path> لتحميل البيانات منه. إذا قمت بتوفير مخطط، يتوقع Auto Loader تضمين هذه الأعمدة في المخطط. إذا كنت لا تريد هذه الأعمدة كجزء من المخطط، يمكنك تحديد "" تجاهل هذه الأعمدة. بالإضافة إلى ذلك، يمكنك استخدام هذا الخيار عندما تريد استنتاج الأعمدة في مسار الملف في بنيات الدليل المعقدة، مثل المثال أدناه:<base-path>/year=2022/week=1/file1.csv<base-path>/year=2022/month=2/day=3/file2.csv<base-path>/year=2022/month=2/day=4/file3.csvتحديد cloudFiles.partitionColumns كما year,month,day سيتم إرجاعyear=2022 ل file1.csv، ولكن month العمودين و day سيكونان null.month وسيتم تحليل و day بشكل صحيح ل file2.csv و file3.csv.القيمة الافتراضية: بلا |
schemaHintsالنوع: Stringمعلومات المخطط التي توفرها ل Auto Loader أثناء استدلال المخطط. راجع تلميحات المخطط للحصول على مزيد من التفاصيل. القيمة الافتراضية: بلا |
useStrictGlobberالنوع: Booleanما إذا كان يجب استخدام globber صارم يطابق سلوك globbing الافتراضي لمصادر الملفات الأخرى في Apache Spark. راجع أنماط تحميل البيانات الشائعة لمزيد من التفاصيل. متوفر في Databricks Runtime 12.2 LTS وما فوق. لاحظ أن هذا هو عكس الافتراضي ل Auto Loader. قيمة افتراضية: true |
خيارات عامة
تنطبق الخيارات التالية على كافة تنسيقات الملفات.
| خيار |
|---|
ignoreCorruptFilesالنوع: Booleanما إذا كان سيتم تجاهل الملفات التالفة. إذا كان صحيحا، ستستمر مهام Spark في التشغيل عند مواجهة ملفات تالفة وسيتم إرجاع المحتويات التي تمت قراءتها. يمكن ملاحظته كما في numSkippedCorruptFilesoperationMetrics عمود محفوظات Delta Lake. متوفر في Databricks Runtime 11.3 LTS وما فوق.قيمة افتراضية: false |
ignoreMissingFilesالنوع: Booleanما إذا كنت تريد تجاهل الملفات المفقودة. إذا كان صحيحا، ستستمر مهام Spark في التشغيل عند مواجهة الملفات المفقودة وسيتم إرجاع المحتويات التي تمت قراءتها. متوفر في Databricks Runtime 11.3 LTS وما فوق. القيمة الافتراضية: false (true ل COPY INTO) |
modifiedAfterالنوع: Timestamp String، على سبيل المثال، 2021-01-01 00:00:00.000000 UTC+0طابع زمني اختياري لاستيعاب الملفات التي تحتوي على طابع زمني للتعديل بعد الطابع الزمني المتوفر. القيمة الافتراضية: بلا |
modifiedBeforeالنوع: Timestamp String، على سبيل المثال، 2021-01-01 00:00:00.000000 UTC+0طابع زمني اختياري لاستيعاب الملفات التي تحتوي على طابع زمني للتعديل قبل الطابع الزمني المتوفر. القيمة الافتراضية: بلا |
pathGlobFilter أو fileNamePatternالنوع: Stringنمط glob محتمل لتوفير لاختيار الملفات. مكافئ ل PATTERN في COPY INTO. fileNamePattern يمكن استخدامها في read_files.القيمة الافتراضية: بلا |
recursiveFileLookupالنوع: Booleanما إذا كان يجب تخطي استدلال القسم أثناء استنتاج المخطط. لا يؤثر هذا على الملفات التي يتم تحميلها. قيمة افتراضية: false |
JSON خيارات
| خيار |
|---|
allowBackslashEscapingAnyCharacterالنوع: Booleanما إذا كان سيتم السماح بعلامات مائلة عكسية للهروب من أي حرف ينجح فيه. إذا لم يتم تمكينه، يمكن إلغاء الأحرف المدرجة بشكل صريح بواسطة مواصفات JSON. قيمة افتراضية: false |
allowCommentsالنوع: Booleanما إذا كنت تريد السماح باستخدام تعليقات أنماط Java وC وC++ ( '/'و '*'وأصناف '//' ) ضمن محتوى تم تحليله أم لا.قيمة افتراضية: false |
allowNonNumericNumbersالنوع: Booleanما إذا كنت تريد السماح بمجموعة الرموز المميزة غير الرقمية ( NaN) كقيم أرقام عائمة قانونية.قيمة افتراضية: true |
allowNumericLeadingZerosالنوع: Booleanما إذا كنت تريد السماح للأرقام المتكاملة بالبدء بأصفار إضافية (يمكن تجاهلها) (على سبيل المثال، 000001).قيمة افتراضية: false |
allowSingleQuotesالنوع: Booleanما إذا كان يجب السماح باستخدام علامات الاقتباس المفردة (علامة اقتباس أحادية، حرف '\') لسلاسل الاقتباس (الأسماء وقيم السلسلة).قيمة افتراضية: true |
allowUnquotedControlCharsالنوع: Booleanما إذا كنت تريد السماح لسلاسل JSON باحتواء أحرف تحكم غير مغلفة (أحرف ASCII بقيمة أقل من 32، بما في ذلك أحرف الجدولة وموجز الأسطر) أم لا. قيمة افتراضية: false |
allowUnquotedFieldNamesالنوع: Booleanما إذا كان سيتم السماح باستخدام أسماء الحقول غير المدرجة (والتي يسمح بها JavaScript، ولكن ليس بواسطة مواصفات JSON). قيمة افتراضية: false |
badRecordsPathالنوع: Stringمسار تخزين الملفات لتسجيل المعلومات حول سجلات JSON غير الصالحة. القيمة الافتراضية: بلا |
columnNameOfCorruptRecordالنوع: Stringالعمود الخاص بتخزين السجلات التي تم تكوينها بشكل غير جيد ولا يمكن تحليلها. mode إذا تم تعيين لتحليل ك DROPMALFORMED، فسيكون هذا العمود فارغا.قيمة افتراضية: _corrupt_record |
dateFormatالنوع: Stringتنسيق تحليل سلاسل التاريخ. قيمة افتراضية: yyyy-MM-dd |
dropFieldIfAllNullالنوع: Booleanما إذا كنت تريد تجاهل أعمدة كافة القيم الخالية أو الصفائف والبنى الفارغة أثناء استدلال المخطط. قيمة افتراضية: false |
encoding أو charsetالنوع: Stringاسم ترميز ملفات JSON. راجع java.nio.charset.Charset للحصول على قائمة الخيارات. لا يمكنك استخدام UTF-16 ومتى multiline UTF-32 يكون true.قيمة افتراضية: UTF-8 |
inferTimestampالنوع: Booleanما إذا كنت تريد محاولة استنتاج سلاسل الطابع الزمني ك TimestampType. عند التعيين إلىtrue، قد يستغرق استنتاج المخطط وقتا أطول بشكل ملحوظ. يجب تمكين cloudFiles.inferColumnTypes الاستخدام مع "المحمل التلقائي".قيمة افتراضية: false |
lineSepالنوع: Stringسلسلة بين سجلي JSON متتاليين. القيمة الافتراضية: None، والتي تغطي \rو \r\nو \n |
localeالنوع: Stringjava.util.Locale معرف. يؤثر على التاريخ الافتراضي والطوابع الزمنية وتحليل المنازل العشرية داخل JSON.قيمة افتراضية: US |
modeالنوع: Stringوضع المحلل حول معالجة السجلات التي تم تكوينها بشكل غير جيد. واحد من 'PERMISSIVE'،'DROPMALFORMED'، أو 'FAILFAST'.قيمة افتراضية: PERMISSIVE |
multiLineالنوع: Booleanما إذا كانت سجلات JSON تمتد عبر أسطر متعددة. قيمة افتراضية: false |
prefersDecimalالنوع: Booleanيحاول استنتاج السلاسل بدلا DecimalType من النوع العائم أو المزدوج عندما يكون ذلك ممكنا. يجب عليك أيضا استخدام استنتاج المخطط، إما عن طريق تمكينinferSchema أو استخدام cloudFiles.inferColumnTypes مع أداة التحميل التلقائي.قيمة افتراضية: false |
primitivesAsStringالنوع: Booleanما إذا كنت تريد استنتاج أنواع بدائية مثل الأرقام والقيم المنطقية ك StringType.قيمة افتراضية: false |
readerCaseSensitiveالنوع: Booleanتحديد سلوك حساسية الحالة عند rescuedDataColumn تمكينه. إذا كان صحيحا، فانقاذ أعمدة البيانات التي تختلف أسماؤها حسب الحالة عن المخطط؛ وإلا، اقرأ البيانات بطريقة غير حساسة لحالة الأحرف. متوفر في وقت تشغيل Databricks13.3 وما فوق. قيمة افتراضية: true |
rescuedDataColumnالنوع: Stringما إذا كنت تريد تجميع جميع البيانات التي لا يمكن تحليلها بسبب عدم تطابق نوع البيانات أو عدم تطابق المخطط (بما في ذلك غلاف العمود) إلى عمود منفصل. يتم تضمين هذا العمود بشكل افتراضي عند استخدام "المحمل التلقائي". لمزيد من التفاصيل، راجع ما هو عمود البيانات الذي تم إنقاذه؟. القيمة الافتراضية: بلا |
singleVariantColumnالنوع: Stringما إذا كنت تريد استيعاب مستند JSON بأكمله، يتم تحليله في عمود متغير واحد مع السلسلة المحددة كاسم العمود. إذا تم تعطيلها، إدخال حقول JSON في أعمدةها الخاصة. القيمة الافتراضية: بلا |
timestampFormatالنوع: Stringتنسيق تحليل سلاسل الطابع الزمني. قيمة افتراضية: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
timeZoneالنوع: Stringjava.time.ZoneId لاستخدامه عند تحليل الطوابع الزمنية والتواريخ.القيمة الافتراضية: بلا |
CSV خيارات
| خيار |
|---|
badRecordsPathالنوع: Stringمسار تخزين الملفات لتسجيل المعلومات حول سجلات CSV غير الصالحة. القيمة الافتراضية: بلا |
charToEscapeQuoteEscapingالنوع: Charالحرف المستخدم للهروب من الحرف المستخدم للهروب من علامات الاقتباس. على سبيل المثال، للسجل التالي: : [ " a\\", b ]- إذا كان الحرف المطلوب إلغاء '\' تحديده، فلن يتم تحليل السجل. سيقرأ المحلل الأحرف: [a],[\],["],[,],[ ],[b] ويطرح خطأ لأنه لا يمكنه العثور على اقتباس إغلاق.- إذا تم تعريف '\'الحرف المطلوب إلغاء ك '\' ، فستتم قراءة السجل بقيمتي: [a\] و[b].قيمة افتراضية: '\0' |
columnNameOfCorruptRecord> [! ملاحظة] >> مدعومة للتحميل التلقائي. غير مدعوم ل COPY INTO.النوع: Stringالعمود الخاص بتخزين السجلات التي تم تكوينها بشكل غير جيد ولا يمكن تحليلها. mode إذا تم تعيين لتحليل ك DROPMALFORMED، فسيكون هذا العمود فارغا.قيمة افتراضية: _corrupt_record |
commentالنوع: Charتعريف الحرف الذي يمثل تعليق سطر عند العثور عليه في بداية سطر من النص. استخدم '\0' لتعطيل تخطي التعليق.قيمة افتراضية: '\u0000' |
dateFormatالنوع: Stringتنسيق تحليل سلاسل التاريخ. قيمة افتراضية: yyyy-MM-dd |
emptyValueالنوع: Stringتمثيل سلسلة لقيمة فارغة. قيمة افتراضية: "" |
encoding أو charsetالنوع: Stringاسم ترميز ملفات CSV. راجع java.nio.charset.Charset للحصول على قائمة الخيارات. UTF-16 ولا UTF-32 يمكن استخدامها عندما multiline تكون true.قيمة افتراضية: UTF-8 |
enforceSchemaالنوع: Booleanما إذا كان سيتم تطبيق المخطط المحدد أو المستنتج قسرا على ملفات CSV. إذا تم تمكين الخيار، يتم تجاهل رؤوس ملفات CSV. يتم تجاهل هذا الخيار بشكل افتراضي عند استخدام Auto Loader لإنقاذ البيانات والسماح بتطور المخطط. قيمة افتراضية: true |
escapeالنوع: Charحرف الإلغاء المراد استخدامه عند تحليل البيانات. قيمة افتراضية: '\' |
headerالنوع: Booleanما إذا كانت ملفات CSV تحتوي على عنوان. يفترض "المحمل التلقائي" أن الملفات تحتوي على رؤوس عند الاستدلال على المخطط. قيمة افتراضية: false |
ignoreLeadingWhiteSpaceالنوع: Booleanما إذا كنت تريد تجاهل المسافات البيضاء البادئة لكل قيمة تم تحليلها. قيمة افتراضية: false |
ignoreTrailingWhiteSpaceالنوع: Booleanما إذا كان سيتم تجاهل المسافات البيضاء اللاحقة لكل قيمة تم تحليلها. قيمة افتراضية: false |
inferSchemaالنوع: Booleanما إذا كنت تريد استنتاج أنواع البيانات لسجلات CSV التي تم تحليلها أو افتراض أن جميع الأعمدة هي من StringType. يتطلب تمريرا إضافيا عبر البيانات إذا تم تعيينه إلى true. بالنسبة للتحميل التلقائي، استخدم cloudFiles.inferColumnTypes بدلا من ذلك.قيمة افتراضية: false |
lineSepالنوع: Stringسلسلة بين سجلي CSV متتاليين. القيمة الافتراضية: None، والتي تغطي \rو \r\nو \n |
localeالنوع: Stringjava.util.Locale معرف. يؤثر على التاريخ الافتراضي والطوابع الزمنية وتحليل المنازل العشرية داخل CSV.قيمة افتراضية: US |
maxCharsPerColumnالنوع: Intالحد الأقصى لعدد الأحرف المتوقعة من قيمة إلى تحليل. يمكن استخدامها لتجنب أخطاء الذاكرة. الإعدادات الافتراضية إلى -1، ما يعني غير محدود.قيمة افتراضية: -1 |
maxColumnsالنوع: Intالحد الثابت لعدد الأعمدة التي يمكن أن يحتويها السجل. قيمة افتراضية: 20480 |
mergeSchemaالنوع: Booleanما إذا كنت تريد استنتاج المخطط عبر ملفات متعددة ودمج مخطط كل ملف. تمكين افتراضيا ل Auto Loader عند الاستدلال على المخطط. قيمة افتراضية: false |
modeالنوع: Stringوضع المحلل حول معالجة السجلات التي تم تكوينها بشكل غير جيد. واحد من 'PERMISSIVE'،'DROPMALFORMED'، و 'FAILFAST'.قيمة افتراضية: PERMISSIVE |
multiLineالنوع: Booleanما إذا كانت سجلات CSV تمتد عبر أسطر متعددة. قيمة افتراضية: false |
nanValueالنوع: Stringتمثيل السلسلة لقيمة غير رقمية عند التحليل FloatType والأعمدة DoubleType .قيمة افتراضية: "NaN" |
negativeInfالنوع: Stringتمثيل سلسلة اللانهاية السالبة عند التحليل FloatType أو DoubleType الأعمدة.قيمة افتراضية: "-Inf" |
nullValueالنوع: Stringتمثيل سلسلة لقيمة فارغة. قيمة افتراضية: "" |
parserCaseSensitive (مهمل)النوع: Booleanأثناء قراءة الملفات، ما إذا كنت تريد محاذاة الأعمدة المعلن عنها في الرأس مع حالة المخطط بشكل حساس. هذا true افتراضيا للتحميل التلقائي. سيتم إنقاذ الأعمدة التي تختلف حسب الحالة في rescuedDataColumn إذا تم تمكينها. تم إهمال هذا الخيار لصالح readerCaseSensitive.قيمة افتراضية: false |
positiveInfالنوع: Stringتمثيل سلسلة اللانهاية الإيجابية عند التحليل FloatType أو DoubleType الأعمدة.قيمة افتراضية: "Inf" |
preferDateالنوع: Booleanيحاول استنتاج السلاسل كتواريخ بدلا من الطابع الزمني عندما يكون ذلك ممكنا. يجب عليك أيضا استخدام استنتاج المخطط، إما عن طريق تمكين inferSchema أو استخدامcloudFiles.inferColumnTypes مع أداة التحميل التلقائي.قيمة افتراضية: true |
quoteالنوع: Charالحرف المستخدم لإفراد القيم حيث يكون محدد الحقل جزءا من القيمة. قيمة افتراضية: " |
readerCaseSensitiveالنوع: Booleanتحديد سلوك حساسية الحالة عند rescuedDataColumn تمكينه. إذا كان صحيحا، فانقاذ أعمدة البيانات التي تختلف أسماؤها حسب الحالة عن المخطط؛ وإلا، اقرأ البيانات بطريقة غير حساسة لحالة الأحرف.قيمة افتراضية: true |
rescuedDataColumnالنوع: Stringما إذا كنت تريد جمع جميع البيانات التي لا يمكن تحليلها بسبب: عدم تطابق نوع البيانات، و عدم تطابق المخطط (بما في ذلك غلاف العمود) إلى عمود منفصل. يتم تضمين هذا العمود بشكل افتراضي عند استخدام "المحمل التلقائي". لمزيد من التفاصيل راجع ما هو عمود البيانات الذي تم إنقاذه؟. القيمة الافتراضية: بلا |
sep أو delimiterالنوع: Stringسلسلة الفاصل بين الأعمدة. قيمة افتراضية: "," |
skipRowsالنوع: Intعدد الصفوف من بداية ملف CSV التي يجب تجاهلها (بما في ذلك الصفوف المعلقة والفارغة). إذا كان header صحيحا، فسيكون العنوان هو أول صف غير مغطى وغير مرسل.قيمة افتراضية: 0 |
timestampFormatالنوع: Stringتنسيق تحليل سلاسل الطابع الزمني. قيمة افتراضية: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
timeZoneالنوع: Stringjava.time.ZoneId لاستخدامه عند تحليل الطوابع الزمنية والتواريخ.القيمة الافتراضية: بلا |
unescapedQuoteHandlingالنوع: Stringاستراتيجية التعامل مع علامات الاقتباس غير المغلفة. الخيارات المسموح بها: - STOP_AT_CLOSING_QUOTE: إذا تم العثور على علامات اقتباس غير مغلفة في الإدخال، قم بتجميع حرف الاقتباس ومتابعة تحليل القيمة كقيمة مقتبسة، حتى يتم العثور على اقتباس إغلاق.- BACK_TO_DELIMITER: إذا تم العثور على علامات اقتباس غير مغلفة في الإدخال، ففكر في القيمة كقيمة غير مقتبسة. سيؤدي ذلك إلى تجميع المحلل لجميع أحرف القيمة الحالية التي تم تحليلها حتى يتم العثور على المحدد المحدد بواسطة sep . إذا لم يتم العثور على محدد في القيمة، فسيستمر المحلل في تجميع الأحرف من الإدخال حتى يتم العثور على محدد أو نهاية سطر.- STOP_AT_DELIMITER: إذا تم العثور على علامات اقتباس غير مغلفة في الإدخال، ففكر في القيمة كقيمة غير مقتبسة. سيؤدي هذا إلى جعل المحلل يتراكم كافة الأحرف حتى يتم العثور على المحدد المحدد بواسطة sep، أو نهاية سطر في الإدخال.- SKIP_VALUE: إذا تم العثور على علامات اقتباس غير مغلفة في الإدخال، تخطي المحتوى الذي تم تحليله للقيمة المحددة (حتى يتم العثور على المحدد التالي) وسيتم إنتاج القيمة التي تم تعيينها في nullValue بدلا من ذلك.- RAISE_ERROR: إذا تم العثور على علامات اقتباس غير مغلفة في الإدخال، فTextParsingException سيتم طرحها.قيمة افتراضية: STOP_AT_DELIMITER |
XML خيارات
| خيار | الوصف | Scope |
|---|---|---|
rowTag |
علامة الصف لملفات XML للتعامل معها كصف. في مثال XML <books> <book><book>...<books>، القيمة المناسبة هي book. هذا خيار مطلوب. |
read |
samplingRatio |
تعريف جزء صغير من الصفوف المستخدمة لاستدلال المخطط. تتجاهل الدالات المضمنة في XML هذا الخيار. افتراضي: 1.0. |
read |
excludeAttribute |
ما إذا كان سيتم استبعاد السمات في العناصر. افتراضي: false. |
read |
mode |
وضع التعامل مع السجلات التالفة أثناء التحليل.PERMISSIVE: بالنسبة للسجلات التالفة، يضع السلسلة التي تم تكوينها بشكل غير سليم في حقل تم تكوينه بواسطة columnNameOfCorruptRecord، ويعين الحقول التي تم تكوينها بشكل غير سليم إلى null. للاحتفاظ بالسجلات التالفة، يمكنك تعيين string حقل نوع يسمى columnNameOfCorruptRecord في مخطط معرف من قبل المستخدم. إذا لم يكن المخطط يحتوي على الحقل، يتم إسقاط السجلات التالفة أثناء التحليل. عند الاستدلال على مخطط، يضيف المحلل ضمنيا حقلا columnNameOfCorruptRecord في مخطط إخراج.DROPMALFORMED: يتجاهل السجلات التالفة. هذا الوضع غير معتمد للوظائف المضمنة في XML.FAILFAST: يطرح استثناء عندما يفي المحلل بالسجلات التالفة. |
read |
inferSchema |
إذا true، يحاول استنتاج نوع مناسب لكل عمود DataFrame الناتج. إذا كانت falseجميع الأعمدة الناتجة من النوع ، فإن كل الأعمدة الناتجة هي من string النوع . الإعداد الافتراضي:true. تتجاهل الدالات المضمنة في XML هذا الخيار. |
read |
columnNameOfCorruptRecord |
يسمح بإعادة تسمية الحقل الجديد الذي يحتوي على سلسلة مشوهة تم إنشاؤها بواسطةPERMISSIVE طريقة. افتراضي: spark.sql.columnNameOfCorruptRecord. |
read |
attributePrefix |
بادئة السمات لتمييز السمات عن العناصر. ستكون هذه هي بادئة أسماء الحقول. القيمة الافتراضية هي _. يمكن أن تكون فارغة لقراءة XML، ولكن ليس للكتابة. |
القراءة والكتابة |
valueTag |
العلامة المستخدمة لبيانات الأحرف داخل العناصر التي تحتوي أيضا على السمة (السمات) أو عناصر العناصر التابعة. يمكن للمستخدم تحديد valueTag الحقل في المخطط أو ستتم إضافته تلقائيا أثناء استنتاج المخطط عندما تكون بيانات الأحرف موجودة في عناصر مع عناصر أو سمات أخرى. الافتراضي: _VALUE |
قراءة وكتابة |
encoding |
للقراءة، قم بفك ترميز ملفات XML حسب نوع الترميز المحدد. للكتابة، يحدد ترميز (charset) لملفات XML المحفوظة. تتجاهل الدالات المضمنة في XML هذا الخيار. افتراضي: UTF-8. |
القراءة والكتابة |
ignoreSurroundingSpaces |
يحدد ما إذا كان يجب تخطي المسافات البيضاء المحيطة من القيم التي تتم قراءتها. افتراضي: true. يتم تجاهل بيانات أحرف المسافة البيضاء فقط. |
read |
rowValidationXSDPath |
المسار إلى ملف XSD اختياري يستخدم للتحقق من صحة XML لكل صف على حدة. يتم التعامل مع الصفوف التي تفشل في التحقق من صحتها مثل أخطاء التحليل كما هو موضح أعلاه. لا يؤثر XSD على المخطط المقدم أو المستنتج. | read |
ignoreNamespace |
إذا trueتم تجاهل بادئات مساحات الأسماء على عناصر XML والسمات. يتم التعامل مع العلامات <abc:author> و <def:author>، على سبيل المثال، كما لو كان كلاهما فقط <author>. لا يمكن تجاهل مساحات الأسماء على rowTag العنصر، فقط توابع القراءة الخاصة به. تحليل XML ليس مدركا لمساحة الاسم حتى لو .false افتراضي: false. |
read |
timestampFormat |
سلسلة تنسيق الطابع الزمني المخصصة التي تتبع تنسيق نمط التاريخ والوقت. ينطبق هذا على timestamp النوع. افتراضي: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]. |
القراءة والكتابة |
timestampNTZFormat |
سلسلة تنسيق مخصصة للطوابع الزمنية دون المنطقة الزمنية التي تتبع تنسيق نمط التاريخ والوقت. ينطبق هذا على نوع TimestampNTZType. الإعداد الافتراضي:yyyy-MM-dd'T'HH:mm:ss[.SSS] |
القراءة والكتابة |
dateFormat |
سلسلة تنسيق التاريخ المخصصة التي تتبع تنسيق نمط التاريخ والوقت. ينطبق هذا على نوع التاريخ. افتراضي: yyyy-MM-dd. |
القراءة والكتابة |
locale |
تعيين إعدادات محلية كعلامة لغة بتنسيق IETF BCP 47. على سبيل المثال، locale يستخدم أثناء تحليل التواريخ والطوابع الزمنية. افتراضي: en-US. |
read |
rootTag |
علامة الجذر لملفات XML. على سبيل المثال، في <books> <book><book>...</books>، القيمة المناسبة هي books. يمكنك تضمين السمات الأساسية عن طريق تحديد قيمة مثل books foo="bar". افتراضي: ROWS. |
write |
declaration |
محتوى إعلان XML للكتابة في بداية كل ملف XML للإخراج، قبل rootTag. على سبيل المثال، قيمة الأسباب foo التي <?xml foo?> يجب كتابتها. تعيين إلى سلسلة فارغة لمنع. الافتراضي: version="1.0"encoding="UTF-8" standalone="yes". |
write |
arrayElementName |
اسم عنصر XML الذي يحيط بكل عنصر من أعمدة ذات قيمة صفيف عند الكتابة. افتراضي: item. |
write |
nullValue |
تعيين تمثيل السلسلة لقيمة خالية. الافتراضي: سلسلة null. عندما يكون هذا هو null، لا يكتب المحلل السمات والعناصر للحولات. |
القراءة والكتابة |
compression |
ضغط التعليمات البرمجية لاستخدامها عند الحفظ في ملف. يمكن أن يكون هذا أحد الأسماء المختصرة المعروفة غير الحساسة لحالة الأحرف (noneوlz4bzip2gzip و و snappyو وdeflate). تتجاهل الدالات المضمنة في XML هذا الخيار. افتراضي: none. |
write |
validateName |
إذا كان صحيحا، يطرح خطأ في فشل التحقق من صحة اسم عنصر XML. على سبيل المثال، يمكن أن تحتوي أسماء حقول SQL على مسافات، ولكن لا يمكن لأسماء عناصر XML. الإعداد الافتراضي:true. |
write |
readerCaseSensitive |
يحدد سلوك حساسية الحالة عند تمكين rescuedDataColumn. إذا كان صحيحا، فانقاذ أعمدة البيانات التي تختلف أسماؤها حسب الحالة عن المخطط؛ وإلا، اقرأ البيانات بطريقة غير حساسة لحالة الأحرف. افتراضي: true. |
read |
rescuedDataColumn |
ما إذا كنت تريد تجميع جميع البيانات التي لا يمكن تحليلها بسبب عدم تطابق نوع البيانات وتعذر تطابق المخطط (بما في ذلك غلاف العمود) إلى عمود منفصل. يتم تضمين هذا العمود بشكل افتراضي عند استخدام "المحمل التلقائي". لمزيد من التفاصيل، راجع ما هو عمود البيانات الذي تم إنقاذه؟. الافتراضي: بلا. | read |
PARQUET خيارات
| خيار |
|---|
datetimeRebaseModeالنوع: Stringيتحكم في إعادة بناء قيم DATE و TIMESTAMP بين التقويمات الميلادية جوليان و Proleptic. القيم المسموح بها: EXCEPTIONو LEGACYوCORRECTED.قيمة افتراضية: LEGACY |
int96RebaseModeالنوع: Stringيتحكم في إعادة بناء قيم الطابع الزمني INT96 بين التقويمين الميلادي جوليان وبرولبتك. القيم المسموح بها: EXCEPTIONو LEGACYوCORRECTED.قيمة افتراضية: LEGACY |
mergeSchemaالنوع: Booleanما إذا كنت تريد استنتاج المخطط عبر ملفات متعددة ودمج مخطط كل ملف. قيمة افتراضية: false |
readerCaseSensitiveالنوع: Booleanتحديد سلوك حساسية الحالة عند rescuedDataColumn تمكينه. إذا كان صحيحا، فانقاذ أعمدة البيانات التي تختلف أسماؤها حسب الحالة عن المخطط؛ وإلا، اقرأ البيانات بطريقة غير حساسة لحالة الأحرف.قيمة افتراضية: true |
rescuedDataColumnالنوع: Stringما إذا كنت تريد جمع جميع البيانات التي لا يمكن تحليلها بسبب: عدم تطابق نوع البيانات، و عدم تطابق المخطط (بما في ذلك غلاف العمود) إلى عمود منفصل. يتم تضمين هذا العمود بشكل افتراضي عند استخدام "المحمل التلقائي". لمزيد من التفاصيل راجع ما هو عمود البيانات الذي تم إنقاذه؟. القيمة الافتراضية: بلا |
AVRO خيارات
| خيار |
|---|
avroSchemaالنوع: Stringمخطط اختياري يوفره مستخدم بتنسيق Avro. عند قراءة Avro، يمكن تعيين هذا الخيار إلى مخطط متطور، وهو متوافق ولكن مختلف مع مخطط Avro الفعلي. سيكون مخطط إلغاء التسلسل متسقا مع المخطط المتطور. على سبيل المثال، إذا قمت بتعيين مخطط متطور يحتوي على عمود إضافي واحد بقيمة افتراضية، فستحتوي نتيجة القراءة على العمود الجديد أيضا. القيمة الافتراضية: بلا |
datetimeRebaseModeالنوع: Stringيتحكم في إعادة بناء قيم DATE و TIMESTAMP بين التقويمات الميلادية جوليان و Proleptic. القيم المسموح بها: EXCEPTIONو LEGACYوCORRECTED.قيمة افتراضية: LEGACY |
mergeSchemaالنوع: Booleanما إذا كنت تريد استنتاج المخطط عبر ملفات متعددة ودمج مخطط كل ملف. mergeSchema بالنسبة ل Avro لا يخفف أنواع البيانات.قيمة افتراضية: false |
readerCaseSensitiveالنوع: Booleanتحديد سلوك حساسية الحالة عند rescuedDataColumn تمكينه. إذا كان صحيحا، فانقاذ أعمدة البيانات التي تختلف أسماؤها حسب الحالة عن المخطط؛ وإلا، اقرأ البيانات بطريقة غير حساسة لحالة الأحرف.قيمة افتراضية: true |
rescuedDataColumnالنوع: Stringما إذا كنت تريد جمع جميع البيانات التي لا يمكن تحليلها بسبب: عدم تطابق نوع البيانات، و عدم تطابق المخطط (بما في ذلك غلاف العمود) إلى عمود منفصل. يتم تضمين هذا العمود بشكل افتراضي عند استخدام "المحمل التلقائي". لمزيد من التفاصيل راجع ما هو عمود البيانات الذي تم إنقاذه؟. القيمة الافتراضية: بلا |
BINARYFILE خيارات
لا تحتوي الملفات الثنائية على أي خيارات تكوين إضافية.
TEXT خيارات
| خيار |
|---|
encodingالنوع: Stringاسم ترميز ملفات TEXT. راجع java.nio.charset.Charset للحصول على قائمة الخيارات.قيمة افتراضية: UTF-8 |
lineSepالنوع: Stringسلسلة بين سجلي TEXT متتاليين. القيمة الافتراضية: None، والتي تغطي \rو \r\n\n |
wholeTextالنوع: Booleanما إذا كنت تريد قراءة ملف كسجل واحد. قيمة افتراضية: false |
ORC خيارات
| خيار |
|---|
mergeSchemaالنوع: Booleanما إذا كنت تريد استنتاج المخطط عبر ملفات متعددة ودمج مخطط كل ملف. قيمة افتراضية: false |
خيارات الدفق
تنطبق هذه الخيارات عند استخدام read_files داخل جدول دفق أو استعلام دفق.
| خيار |
|---|
allowOverwritesالنوع: Booleanما إذا كنت تريد إعادة معالجة الملفات التي تم تعديلها بعد الاكتشاف. ستتم معالجة أحدث إصدار متوفر من الملف أثناء التحديث إذا تم تعديله منذ آخر وقت بدء لاستعلام التحديث الناجح. قيمة افتراضية: false |
includeExistingFilesالنوع: Booleanما إذا كان يجب تضمين الملفات الموجودة في مسار إدخال معالجة الدفق أو معالجة الملفات الجديدة التي تصل بعد الإعداد الأولي فقط. يتم تقييم هذا الخيار فقط عند بدء دفق للمرة الأولى. تغيير هذا الخيار بعد إعادة تشغيل الدفق ليس له أي تأثير. قيمة افتراضية: true |
maxBytesPerTriggerالنوع: Byte Stringالحد الأقصى لعدد وحدات البايت الجديدة التي ستتم معالجتها في كل مشغل. يمكنك تحديد سلسلة بايت مثل 10g تحديد كل قالب صغير إلى 10 غيغابايت من البيانات. هذا هو الحد الأقصى الناعم. إذا كان لديك ملفات تبلغ سعة كل منها 3 غيغابايت، فإن Azure Databricks تعالج 12 غيغابايت في دفعة صغيرة. عند استخدامها مع maxFilesPerTrigger، يستهلك Azure Databricks ما يصل إلى الحد الأدنى من maxFilesPerTrigger أو maxBytesPerTrigger، أيهما يتم الوصول إليه أولا.ملاحظة: بالنسبة لجداول الدفق التي تم إنشاؤها على مستودعات SQL بلا خادم، يجب تعيين هذا الخيار maxFilesPerTrigger ولا ينبغي تعيينه للاستفادة من التحكم الديناميكي في القبول، والذي يتدرج حسب حجم حمل العمل وموارد الحوسبة بلا خادم لمنحك أفضل زمن انتقال وأداء.القيمة الافتراضية: بلا |
maxFilesPerTriggerالنوع: Integerالحد الأقصى لعدد الملفات الجديدة التي ستتم معالجتها في كل مشغل. عند استخدامها مع maxBytesPerTrigger، يستهلك Azure Databricks ما يصل إلى الحد الأدنى من maxFilesPerTrigger أو maxBytesPerTrigger، أيهما يتم الوصول إليه أولا.ملاحظة: بالنسبة لجداول الدفق التي تم إنشاؤها على مستودعات SQL بلا خادم، يجب تعيين هذا الخيار maxBytesPerTrigger ولا ينبغي تعيينه للاستفادة من التحكم الديناميكي في القبول، والذي يتدرج حسب حجم حمل العمل وموارد الحوسبة بلا خادم لمنحك أفضل زمن انتقال وأداء.القيمة الافتراضية: 1000 |
schemaEvolutionModeالنوع: Stringيتم اكتشاف وضع تطوير المخطط كأعمدة جديدة في البيانات. بشكل افتراضي، يتم استنتاج الأعمدة كسلاسل عند استنتاج مجموعات بيانات JSON. راجع تطور المخطط لمزيد من التفاصيل. لا ينطبق هذا الخيار على text الملفات و binaryFile .القيمة الافتراضية: "addNewColumns" عندما لا يتم توفير مخطط."none" خلاف ذلك. |
schemaLocationالنوع: Stringموقع تخزين المخطط المستنتج والتغييرات اللاحقة. راجع استنتاج المخطط لمزيد من التفاصيل. موقع المخطط غير مطلوب عند استخدامه في استعلام جدول دفق. القيمة الافتراضية: بلا |
الأمثلة
-- Reads the files available in the given path. Auto-detects the format and schema of the data.
> SELECT * FROM read_files('abfss://container@storageAccount.dfs.core.windows.net/base/path');
-- Reads the headerless CSV files in the given path with the provided schema.
> SELECT * FROM read_files(
's3://bucket/path',
format => 'csv',
schema => 'id int, ts timestamp, event string');
-- Infers the schema of CSV files with headers. Because the schema is not provided,
-- the CSV files are assumed to have headers.
> SELECT * FROM read_files(
's3://bucket/path',
format => 'csv')
-- Reads files that have a csv suffix.
> SELECT * FROM read_files('s3://bucket/path/*.csv')
-- Reads a single JSON file
> SELECT * FROM read_files(
'abfss://container@storageAccount.dfs.core.windows.net/path/single.json')
-- Reads JSON files and overrides the data type of the column `id` to integer.
> SELECT * FROM read_files(
's3://bucket/path',
format => 'json',
schemaHints => 'id int')
-- Reads files that have been uploaded or modified yesterday.
> SELECT * FROM read_files(
'gs://my-bucket/avroData',
modifiedAfter => date_sub(current_date(), 1),
modifiedBefore => current_date())
-- Creates a Delta table and stores the source file path as part of the data
> CREATE TABLE my_avro_data
AS SELECT *, _metadata.file_path
FROM read_files('gs://my-bucket/avroData')
-- Creates a streaming table that processes files that appear only after the table's creation.
-- The table will most likely be empty (if there's no clock skew) after being first created,
-- and future refreshes will bring new data in.
> CREATE OR REFRESH STREAMING TABLE avro_data
AS SELECT * FROM STREAM read_files('gs://my-bucket/avroData', includeExistingFiles => false);