from_csv وظيفه

ينطبق على:التحقق تم وضع علامة نعم على التحقق من Databricks SQL الذي تم وضع علامة عليه نعم Databricks Runtime

إرجاع قيمة بنية مع csvStr و schema.

بناء الجمله

from_csv(csvStr, schema [, options])

الحجج

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

ارجاع

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

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

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

  • sep (افتراضي ,): يعين فاصلا لكل حقل وقيمة. يمكن أن يكون هذا الفاصل حرفا واحدا أو أكثر.
  • encoding (UTF-8 الافتراضي): فك ترميز ملفات CSV حسب نوع الترميز المحدد.
  • quote (افتراضي "): يعين حرفا واحدا يستخدم للهروب من القيم المقتبسة حيث يمكن أن يكون الفاصل جزءا من القيمة. إذا كنت ترغب في إيقاف تشغيل عروض الأسعار، فستحتاج إلى تعيين ليس فارغا ولكن سلسلة فارغة. يختلف هذا السلوك عن com.databricks.spark.csv.
  • escape (افتراضي \): يعين حرفا واحدا يستخدم لهروب علامات الاقتباس داخل قيمة مقتبسة بالفعل.
  • charToEscapeQuoteEscaping (افتراضي escape أو \0): يعين حرفا واحدا يستخدم للهروب من الهروب لحرف الاقتباس. القيمة الافتراضية هي حرف الإلغاء عندما escape تكون الأحرف و quote مختلفة، \0 وإلا.
  • comment (سلسلة فارغة افتراضية): يعين حرفا واحدا يستخدم لتخطي الأسطر التي تبدأ بهذا الحرف. بشكل افتراضي، يتم تعطيله.
  • العنوان (افتراضي false): يستخدم السطر الأول كأسماء أعمدة.
  • enforceSchema (افتراضي true): إذا تم تعيينه إلى صحيح، يتم تطبيق المخطط المحدد أو المستنتج قسرا على ملفات مصدر البيانات، ويتم تجاهل العناوين في ملفات CSV. إذا تم تعيين الخيار إلى خطأ، يتم التحقق من صحة المخطط مقابل جميع العناوين في ملفات CSV في حالة تعيين خيار العنوان إلى صحيح. يتم تحديد أسماء الحقول في أسماء المخطط والأعمدة في رؤوس 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): يعين السلسلة التي تشير إلى تنسيق تاريخ. تتبع تنسيقات التاريخ المخصصة التنسيقات في أنماط التاريخ والوقت. ينطبق هذا على نوع التاريخ.
  • timestampFormat (افتراضي yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): يعين السلسلة التي تشير إلى تنسيق طابع زمني. تتبع تنسيقات التاريخ المخصصة التنسيقات في أنماط التاريخ والوقت. ينطبق هذا على نوع الطابع الزمني.
  • 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}