from_jsonدالة (SQL Databricks)

إرجاع قيمة البنية باستخدام jsonStr و schema .

بناء الجملة

from_json(jsonStr, schema [, options])

الوسيطات

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

المرتجعات

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

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

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

  • primitivesAsStringfalse(افتراضي): يستنتج كافة القيم الأولية كنوع سلسلة.
  • prefersDecimalfalse(افتراضي): يستنتج كافة قيم الفاصلة العائمة كنوع عشري. إذا كانت القيم لا تناسب في عشري، ثم يستنتج منها كما الزوجي.
  • allowCommentsfalse(افتراضي): يتجاهل تعليق نمط Java وC++ في سجلات JSON.
  • allowUnquotedFieldNamesfalse(افتراضي): يسمح بأسماء حقول JSON غير المقتبسة.
  • allowSingleQuotestrue(افتراضي): يسمح بعروض أسعار مفردة بالإضافة إلى عروض أسعار مزدوجة.
  • allowNumericLeadingZerosfalse(افتراضي): يسمح للأصفار الرائدة بالأرقام (على سبيل 00012 المثال).
  • allowBackslashEscapingAnyCharacterfalse(افتراضي): يسمح بقبول الاقتباس من جميع الأحرف باستخدام آلية اقتباس الخط المائل العكسي.
  • allowUnquotedControlCharsfalse(افتراضي): يسمح لسلاسل JSON بالاحتواء على أحرف تحكم غير مقتبسة (أحرف ASCII تقل قيمتها عن 32، بما في ذلك أحرف تغذية الجدولة والخط) أم لا.
  • modePERMISSIVE(افتراضي): يسمح بوضع للتعامل مع السجلات التالفة أثناء التحليل.
    • PERMISSIVEعندما يفي بسجل تالف، يضع السلسلة المشوهة في حقل تم تكوينه بواسطة columnNameOfCorruptRecord ، ويهيئ حقولا مشوهة إلى فارغة. للاحتفاظ بسجلات تالفة، يمكنك تعيين حقل نوع سلسلة مسمى columnNameOfCorruptRecord في مخطط معرف من قبل المستخدم. إذا لم يكن لدى مخطط الحقل، فإنه يسقط السجلات التالفة أثناء تحليل. عند استنتاج مخطط، فإنه يضيف ضمنا columnNameOfCorruptRecord حقل في مخطط إخراج.
    • FAILFASTيطرح استثناء عندما يفي بالسجلات التالفة.
  • columnNameOfCorruptRecord (الافتراضي هو القيمة المحددة spark.sql.columnNameOfCorruptRecord في): يسمح بإعادة تسمية الحقل الجديد الذي يحتوي على سلسلة مشوهة تم إنشاؤها بواسطة PERMISSIVE الوضع. وهذا يتجاوز spark.sql.columnNameOfCorruptRecord .
  • dateFormatyyyy-MM-dd(افتراضي): تعيين السلسلة التي تشير إلى تنسيق تاريخ. تتبع تنسيقات التاريخ المخصص التنسيقات في Databricks SQL أنماط وقت التاريخ. ينطبق هذا على نوع التاريخ.
  • timestampFormatyyyy-MM-dd'T'HH:mm:ss[.SSS][XXX](افتراضي): تعيين السلسلة التي تشير إلى تنسيق الطابع الزمني. تتبع تنسيقات التاريخ المخصص التنسيقات في Databricks SQL أنماط وقت التاريخ. ينطبق هذا على نوع الطابع الزمني.
  • multiLinefalse(افتراضي): يوزع سجلا واحدا، والذي قد يمتد عبر أسطر متعددة، لكل ملف.
  • encoding (افتراضيا لم يتم تعيين): يسمح لتعيين إجباري واحد من الترميز الأساسي أو الموسع القياسية لملفات JSON. على سبيل المثال UTF-16BE، UTF-32LE. إذا لم يتم تحديد الترميز وتم multiLine تعيينه إلى ، يتم الكشف عنه true تلقائيا.
  • lineSep (الافتراضي يغطي كافة \r ، \r\n\n و): يعرف فاصل الأسطر الذي يجب استخدامه لتحليل.
  • samplingRatio (الافتراضي 1.0): يعرف جزء من الإدخال JSON الكائنات المستخدمة للاستدلال المخطط.
  • dropFieldIfAllNullfalse(افتراضي): ما إذا كان سيتم تجاهل عمود كافة القيم الخالية أو صفيف/هيكل فارغ أثناء استنتاج المخطط.
  • locale (الافتراضي en-US هو): sets لغة كلغة العلامة في تنسيق IETF BCP 47. على سبيل المثال، يتم استخدام هذا أثناء تحليل التواريخ والطوابع الزمنية.
  • allowNonNumericNumberstrue(افتراضي): يسمح محلل 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}