مشاركة عبر


read_files دالة ذات قيمة جدولية

ينطبق على: وضع علامة Databricks SQL وضع علامة Databricks Runtime 13.3 LTS وما فوق

قراءة الملفات ضمن موقع متوفر وإرجاع البيانات في نموذج جدولي.

يدعم قراءة JSONتنسيقات الملفات BINARYFILEPARQUETORC CSVXMLTEXTAVROو. يمكنه الكشف عن تنسيق الملف تلقائيا والاستدلال على مخطط موحد عبر جميع الملفات.

بناء الجملة

read_files(path [, option_key => option_value ] [...])

الوسيطات

تتطلب هذه الدالة استدعاء معلمة مسماة لمفاتيح الخيارات.

  • path: مع STRING URI لموقع البيانات. يدعم القراءة من 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 لمزيد من التفاصيل.

الخيارات

الخيارات الأساسية

خيار
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 في التشغيل عند مواجهة ملفات تالفة وسيتم إرجاع المحتويات التي تمت قراءتها. يمكن ملاحظته كما في numSkippedCorruptFiles
operationMetrics عمود محفوظات 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

النوع: String

java.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 تمكينه. إذا كان صحيحا، فانقاذ أعمدة البيانات التي تختلف أسماؤها حسب الحالة عن المخطط؛ وإلا، اقرأ البيانات بطريقة غير حساسة لحالة الأحرف. متوفر في وقت تشغيل Databricks
13.3 وما فوق.

قيمة افتراضية: true
rescuedDataColumn

النوع: String

ما إذا كنت تريد تجميع جميع البيانات التي لا يمكن تحليلها بسبب عدم تطابق نوع البيانات أو عدم تطابق المخطط (بما في ذلك غلاف العمود) إلى عمود منفصل. يتم تضمين هذا العمود بشكل افتراضي عند استخدام "المحمل التلقائي". لمزيد من التفاصيل، راجع ما هو عمود البيانات الذي تم إنقاذه؟.

القيمة الافتراضية: بلا
singleVariantColumn

النوع: String

ما إذا كنت تريد استيعاب مستند JSON بأكمله، يتم تحليله في عمود متغير واحد مع السلسلة المحددة كاسم العمود. إذا تم تعطيلها، إدخال حقول JSON في أعمدةها الخاصة.

القيمة الافتراضية: بلا
timestampFormat

النوع: String

تنسيق تحليل سلاسل الطابع الزمني.

قيمة افتراضية: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone

النوع: String

java.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

النوع: String

java.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

النوع: String

java.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);