from_csvوظيفة (SQL Databricks)

إرجاع قيمة بنية تحتوي على csvStr و schema.

بناء الجملة

from_csv(csvStr, schema [, options])

الوسيطات

  • csvStrتعبير STRING يحدد صفا من بيانات CSV.:
  • schemaسلسلة حرفية أو استدعاء schema:
  • optionsMAPSTRING< اختياري ، سلسلة> التوجيهات الحرفية المحددة.:

المرتجعات

بنية مع أسماء الحقول وأنواعها المطابقة لتعريف المخطط.

csvStr يجب أن تكون جيدة التشكيل فيما يتعلق schema و options. schema يجب تعريفها على أنها اسم عمود مفصول بفواصل وأزواج أنواع البيانات كما هو مستخدم في مثال CREATE TABLE.

options، إذا تم توفيره، يمكن أن يكون أي مما يلي:

  • sep (افتراضي ,): لتعيين فاصل لكل حقل وقيمة. يمكن أن يكون هذا الفاصل حرفا واحدا أو أكثر.
  • encoding (UTF-8 الافتراضي): لفك تشفير ملفات CSV حسب نوع الترميز المحدد.
  • quote (افتراضي "): لتعيين حرف واحد يستخدم للهروب من القيم المقتبسة حيث يمكن أن يكون الفاصل جزءا من القيمة. إذا كنت ترغب في إيقاف تشغيل عروض الأسعار ، فأنت بحاجة إلى تعيين سلسلة فارغة ولكن ليس فارغة. يختلف هذا السلوك عن com.databricks.spark.csv.
  • escape (افتراضي \): لتعيين حرف واحد يستخدم للهروب من علامات الاقتباس داخل قيمة مقتبسة بالفعل.
  • charToEscapeQuoteEscaping (افتراضي escape أو \0): لتعيين حرف واحد يستخدم للهروب من الهروب لحرف الاقتباس. القيمة الافتراضية هي حرف الهروب عندما escapequote تكون الأحرف مختلفة، \0 وإلا.
  • comment (سلسلة فارغة افتراضية): لتعيين حرف واحد يستخدم لتخطي الأسطر التي تبدأ بهذا الحرف. يتم تعطيله في الوضع الافتراضي.
  • الرأس (الافتراضي false): يستخدم السطر الأول كأسماء للأعمدة.
  • enforceSchema (افتراضي true): إذا تم تعيينه إلى true، تطبيق المخطط المحدد أو المستنبط بالقوة على ملفات مصدر البيانات، ويتم تجاهل الرؤوس في ملفات CSV. إذا تم تعيين الخيار إلى false، التحقق من صحة المخطط مقابل جميع الرؤوس في ملفات CSV في حالة تعيين خيار الرأس إلى true. يتم التحقق من أسماء الحقول في المخطط وأسماء الأعمدة في رؤوس CSV حسب مواضعها مع مراعاة spark.sql.caseSensitive. على الرغم من أن القيمة الافتراضية صحيحة، فمن المستحسن تعطيل الخيار enforceSchema لتجنب النتائج غير الصحيحة.
  • inferSchema (افتراضي false): يستنتج مخطط الإدخال تلقائيا من البيانات. يتطلب تمريرة إضافية واحدة على البيانات.
  • samplingRatio (الافتراضي 1.0): يعرف جزء من الصفوف المستخدمة لاستنتاج المخطط.
  • ignoreLeadingWhiteSpace (افتراضي false): علامة تشير إلى ما إذا كان ينبغي تخطي المسافات البيضاء البادئة من القيم التي تتم قراءتها أم لا.
  • ignoreTrailingWhiteSpace (افتراضي false): علامة تشير إلى ما إذا كان ينبغي تخطي المسافات البيضاء الزائدة من القيم التي تتم قراءتها أم لا.
  • nullValue (سلسلة فارغة افتراضية): لتعيين تمثيل السلسلة لقيمة فارغة.
  • emptyValue (سلسلة فارغة افتراضية): لتعيين تمثيل السلسلة لقيمة فارغة.
  • nanValue (افتراضي NaN): لتعيين تمثيل السلسلة لقيمة غير رقمية.
  • positiveInf (افتراضي Inf): لتعيين تمثيل السلسلة لقيمة اللانهاية الموجبة.
  • negativeInf (افتراضي -Inf): لتعيين تمثيل السلسلة لقيمة سالبة لا متناهية.
  • dateFormat (افتراضي yyyy-MM-dd): لتعيين السلسلة التي تشير إلى تنسيق تاريخ. تتبع تنسيقات التواريخ المخصصة التنسيقات الموجودة في أنماط التاريخ SQL databricks. ينطبق هذا على نوع التاريخ.
  • timestampFormat (افتراضي yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): لتعيين السلسلة التي تشير إلى تنسيق طابع زمني. تتبع تنسيقات التواريخ المخصصة التنسيقات الموجودة في أنماط التاريخ SQL databricks. ينطبق هذا على نوع الطابع الزمني.
  • maxColumns (افتراضي 20480): يحدد حدا ثابتا لعدد الأعمدة التي يمكن أن يحتوي عليها السجل.
  • maxCharsPerColumn (افتراضي -1): يحدد الحد الأقصى لعدد الأحرف المسموح بها لأي قيمة محددة يتم قراءتها. بشكل افتراضي ، هو -1 بمعنى طول غير محدود
  • unescapedQuoteHandling (افتراضي STOP_AT_DELIMITER): يحدد كيفية تعامل محلل CSV مع القيم ذات علامات الاقتباس التي لم يتم تجاوزها.
    • STOP_AT_CLOSING_QUOTEإذا تم العثور على علامات اقتباس غير محددة في الإدخال، فقم بتجميع حرف الاقتباس ومتابعة تحليل القيمة كقيمة مقتبسة، حتى يتم العثور على عرض أسعار إغلاق.:
    • BACK_TO_DELIMITERإذا تم العثور على علامات اقتباس غير متوقفة في الإدخال، ففكر في القيمة كقيمة غير مقتبسة.: سيؤدي ذلك إلى قيام المحلل اللغوي بتجميع جميع أحرف القيمة المحللة الحالية حتى يتم العثور على المحدد. إذا لم يتم العثور على محدد في القيمة، فسيستمر المحلل اللغوي في تجميع الأحرف من الإدخال حتى يتم العثور على محدد أو نهاية سطر.
    • STOP_AT_DELIMITERإذا تم العثور على علامات اقتباس غير متوقفة في الإدخال، ففكر في القيمة كقيمة غير مقتبسة.: سيؤدي ذلك إلى جعل المحلل اللغوي يتراكم جميع الأحرف حتى يتم العثور على المحدد أو نهاية السطر في الإدخال.
    • STOP_AT_DELIMITERإذا تم العثور على علامات اقتباس غير محددة في الإدخال، يتم تخطي المحتوى الذي تم تحليله للقيمة المحددة ويتم إنتاج القيمة التي تم تعيينها nullValue بدلا من ذلك.:
    • RAISE_ERRORإذا تم العثور على علامات اقتباس غير متوقفة في الإدخال، يتم طرح علامة TextParsingException .:
  • mode (افتراضي PERMISSIVE): يسمح بوضع للتعامل مع السجلات التالفة أثناء التحليل. وهو يدعم الأوضاع التالية غير الحساسة لحالة الأحرف. يحاول Spark تحليل الأعمدة المطلوبة فقط في CSV تحت تشذيب الأعمدة. لذلك، يمكن أن تكون السجلات التالفة مختلفة استنادا إلى مجموعة الحقول المطلوبة. يمكن التحكم في هذا السلوك بواسطة spark.sql.csv.parser.columnPruning.enabled (ممكن افتراضيا).
    • PERMISSIVEعندما يلتقي بسجل تالف، يضع السلسلة المشوهة في حقل تم تكوينه بواسطة columnNameOfCorruptRecord، ويقوم بتعيين الحقول المشوهة إلى فارغة.: للاحتفاظ بالسجلات التالفة، يمكن للمستخدم تعيين حقل نوع سلسلة باسم columnNameOfCorruptRecord في مخطط معرف من قبل المستخدم. إذا لم يكن المخطط يحتوي على الحقل، فإنه يسقط السجلات التالفة أثناء التحليل. السجل الذي يحتوي على عدد أقل أو أكثر من الرموز المميزة من المخطط ليس سجلا تالفا إلى CSV. عندما يلتقي بسجل يحتوي على رموز مميزة أقل من طول المخطط، يقوم بتعيين فارغ إلى حقول إضافية. عندما يحتوي السجل على رموز مميزة أكثر من طول المخطط ، فإنه يسقط رموزا إضافية.
    • FAILFASTيلقي استثناء عندما يلتقي بالسجلات التالفة.:
  • columnNameOfCorruptRecord (الافتراضي هو القيمة المحددة في spark.sql.columnNameOfCorruptRecord): يسمح بإعادة تسمية الحقل الجديد الذي يحتوي على سلسلة مشوهة تم إنشاؤها بواسطة PERMISSIVE الوضع. هذا يتجاوز spark.sql.columnNameOfCorruptRecord.
  • multiLine (افتراضي false): تحليل سجل واحد، والذي قد يمتد عبر أسطر متعددة.
  • locale (افتراضي en-US): لتعيين الإعدادات المحلية كعلامة لغة بتنسيق IETF BCP 47. على سبيل المثال ، يتم استخدام هذا أثناء تحليل التواريخ والطوابع الزمنية.
  • lineSep (الافتراضي يغطي الكل \r، \r\nو \n): يحدد فاصل الأسطر الذي يجب استخدامه للتحليل. الحد الأقصى للطول هو 1 حرف.
  • pathGlobFilterنمط glob اختياري لتضمين الملفات ذات المسارات المطابقة للنمط فقط.: يتبع بناء الجملة org.apache.hadoop.fs.GlobFilter. لا يغير سلوك اكتشاف القسم.

أمثلة

> SELECT from_csv('1, 0.8', 'a INT, b DOUBLE');
 {1,0.8}
> SELECT from_csv('26/08/2015', 'time Timestamp', map('timestampFormat', 'dd/MM/yyyy'));
 {"time":2015-08-26 00:00:00}