from_jsonوظيفة (SQL Databricks)

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

بناء الجملة

from_json(jsonStr, schema [, options])

الوسيطات

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

المرتجعات

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

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

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

  • primitivesAsString (افتراضي false): يستنتج كل القيم البدائية كنوع سلسلة.
  • prefersDecimal (افتراضي false): يستنتج كل قيم النقاط العائمة كنوع عشري. إذا كانت القيم لا تتناسب مع القيم العشرية ، فإنها تستنتجها كزوجيات.
  • allowComments (افتراضي false): يتجاهل تعليق نمط Java وC++ في سجلات JSON.
  • allowUnquotedFieldNames (افتراضي false): يسمح بأسماء حقول JSON غير المقتبسة.
  • allowSingleQuotes (افتراضي true): يسمح بعلامات اقتباس مفردة بالإضافة إلى علامات اقتباس مزدوجة.
  • allowNumericLeadingZeros (افتراضي false): يسمح بالأصفار البادئة بالأرقام (على سبيل المثال، 00012).
  • allowBackslashEscapingAnyCharacter (افتراضي false): يسمح بقبول الاقتباس من جميع الأحرف باستخدام آلية الاقتباس المائلة العكسية.
  • allowUnquotedControlChars (افتراضي false): يسمح لسلاسل JSON باحتواء أحرف عنصر تحكم غير مقتبسة (أحرف ASCII ذات القيمة أقل من 32، بما في ذلك أحرف خلاصة علامات التبويب والأسطر) أم لا.
  • mode (افتراضي PERMISSIVE): يسمح بوضع للتعامل مع السجلات التالفة أثناء التحليل.
    • PERMISSIVEعندما يلتقي بسجل تالف، يضع السلسلة المشوهة في حقل تم تكوينه بواسطة columnNameOfCorruptRecord، ويقوم بتعيين الحقول المشوهة إلى فارغة.: للاحتفاظ بالسجلات التالفة، يمكنك تعيين حقل نوع سلسلة باسم columnNameOfCorruptRecord في مخطط معرف من قبل المستخدم. إذا لم يكن المخطط يحتوي على الحقل، فإنه يسقط السجلات التالفة أثناء التحليل. عند استنتاج مخطط، فإنه يضيف ضمنيا حقلا columnNameOfCorruptRecord في مخطط الإخراج.
    • FAILFASTيلقي استثناء عندما يلتقي بالسجلات التالفة.:
  • columnNameOfCorruptRecord (الافتراضي هو القيمة المحددة في spark.sql.columnNameOfCorruptRecord): يسمح بإعادة تسمية الحقل الجديد الذي يحتوي على سلسلة مشوهة تم إنشاؤها بواسطة PERMISSIVE الوضع. هذا يتجاوز spark.sql.columnNameOfCorruptRecord.
  • dateFormat (افتراضي yyyy-MM-dd): لتعيين السلسلة التي تشير إلى تنسيق تاريخ. تتبع تنسيقات التواريخ المخصصة التنسيقات الموجودة في أنماط التاريخ SQL databricks. ينطبق هذا على نوع التاريخ.
  • timestampFormat (افتراضي yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): لتعيين السلسلة التي تشير إلى تنسيق طابع زمني. تتبع تنسيقات التواريخ المخصصة التنسيقات الموجودة في أنماط التاريخ SQL databricks. ينطبق هذا على نوع الطابع الزمني.
  • multiLine (افتراضي false): يوزع سجلا واحدا، قد يمتد عبر أسطر متعددة، لكل ملف.
  • encoding (بشكل افتراضي لم يتم تعيينه): يسمح بتعيين أحد الترميز الأساسي أو الموسع القياسي لملفات JSON بالقوة. على سبيل المثال UTF-16BE ، UTF-32LE. إذا لم يتم تحديد الترميز وتم multiLine تعيينه إلى true، اكتشافه تلقائيا.
  • lineSep (الافتراضي يغطي الكل \r، \r\n و \n): يحدد فاصل الأسطر الذي يجب استخدامه للتحليل.
  • samplingRatio (الافتراضي 1.0): يعرف جزءا من كائنات JSON للإدخال المستخدمة لاستنتاج المخطط.
  • dropFieldIfAllNull (افتراضي false): ما إذا كنت تريد تجاهل عمود كافة القيم الخالية أو الصفيف/البنية الفارغة أثناء الاستدلال على المخطط.
  • locale (الافتراضي هو en-US): sets الإعدادات المحلية كعلامة لغة بتنسيق IETF BCP 47. على سبيل المثال ، يتم استخدام هذا أثناء تحليل التواريخ والطوابع الزمنية.
  • allowNonNumericNumbers (افتراضي true): يسمح لمحلل JSON بالتعرف على مجموعة من الرموز المميزة غير الرقم (NaN) كقيم أرقام عائمة قانونية:
    • +INF للنهاية الموجبة ، وكذلك الاسم المستعار ل +Infinity و Infinity.
    • -INF لللانهاية السلبية) ، الاسم المستعار -Infinity.
    • NaN بالنسبة للأرقام الأخرى غير a، مثل نتيجة القسمة على صفر.

أمثلة

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