A from_json függvény

A következőkre vonatkozik:check marked yes Databricks SQL check marked yes Databricks Runtime

Egy szerkezetértéket ad vissza a jsonStr következővel: és schema.

Syntax

from_json(jsonStr, schema [, options])

Arguments

  • jsonStr: JSON-dokumentumot meghatározó KARAKTERLÁNC-kifejezés.
  • schema: Sztringkifejezés vagy schema_of_json függvény meghívása.
  • options: Nem kötelező MAP<STRING,SZtringkonstans> , amely irányelveket határoz meg.

A Databricks Runtime 12.2 schema előtt literálnak kell lennie.

Visszáruk

A sémadefiníciónak megfelelő mezőneveket és típusokat tartalmazó szerkezet.

jsonStr kell jól formázott tekintetében schema és options. schema vesszővel tagolt oszlopnévként és adattípus-párként kell definiálni például CREATE TABLE.

options, ha van ilyen, az alábbiak bármelyike lehet:

  • primitivesAsString (alapértelmezett false): az összes primitív értéket sztringtípusként jelzi.
  • prefersDecimal (alapértelmezett false): az összes lebegőpontos értéket decimális típusként jelöli meg. Ha az értékek nem felelnek meg a decimális értékeknek, akkor azokat dupla értékként jelöli meg.
  • allowComments (alapértelmezett false): figyelmen kívül hagyja a Java és c++ stílusú megjegyzéseket a JSON-rekordokban.
  • allowUnquotedFieldNames (alapértelmezett false): engedélyezi a nem kvótált JSON-mezőneveket.
  • allowSingleQuotes (alapértelmezett true): lehetővé teszi az egyszeri idézőjeleket a dupla idézőjelek mellett.
  • allowNumericLeadingZeros (alapértelmezett false): lehetővé teszi a számok kezdő nulláit (például 00012).
  • allowBackslashEscapingAnyCharacter (alapértelmezett false): lehetővé teszi az összes karakter idézetének elfogadását fordított perjeles idéző mechanizmus használatával.
  • allowUnquotedControlChars (alapértelmezett false): lehetővé teszi, hogy a JSON-sztringek nem kvótált vezérlőkaraktereket (32-nél kisebb értékű ASCII-karaktereket, beleértve a tabulátor- és vonalcsatornakaraktereket) tartalmazzanak.
  • mode (alapértelmezett PERMISSIVE): lehetővé teszi a sérült rekordok elemzés közbeni kezelését.
    • PERMISSIVE: ha egy sérült rekordnak felel meg, a hibásan formázott sztringet egy , által columnNameOfCorruptRecordkonfigurált mezőbe helyezi, és null értékre állítja a hibásan formázott mezőket. A sérült rekordok megőrzéséhez beállíthat egy felhasználó által definiált sémában elnevezett columnNameOfCorruptRecord sztring típusú mezőt. Ha egy séma nem rendelkezik a mezővel, az elemzés során a sérült rekordokat elveti. Séma következtetése esetén implicit módon hozzáad egy mezőt egy columnNameOfCorruptRecord kimeneti sémához.
    • FAILFAST: kivételt eredményez, ha sérült rekordoknak felel meg.
  • columnNameOfCorruptRecord (az alapértelmezett érték a következőben spark.sql.columnNameOfCorruptRecordvan megadva): lehetővé teszi az új mező átnevezését, amely a mód által létrehozott hibás sztringgel PERMISSIVE rendelkezik. Ez a felülbírálások spark.sql.columnNameOfCorruptRecord.
  • dateFormat (alapértelmezett yyyy-MM-dd): beállítja a dátumformátumot jelző sztringet. Az egyéni dátumformátumok a Datetime-minták formátumait követik. Ez a dátumtípusra vonatkozik.
  • timestampFormat (alapértelmezett yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): beállítja az időbélyeg formátumát jelző sztringet. Az egyéni dátumformátumok a Datetime-minták formátumait követik. Ez az időbélyeg típusára vonatkozik.
  • multiLine (alapértelmezett false): fájlonként egy rekordot elemez, amely több sorra is kiterjedhet.
  • encoding (alapértelmezés szerint nincs beállítva): lehetővé teszi a JSON-fájlok egyik szabványos alapszintű vagy kiterjesztett kódolásának kényszerített beállítását. Például UTF-16BE, UTF-32LE. Ha a kódolás nincs megadva, és multiLine be van állítva true, a rendszer automatikusan észleli.
  • lineSep (alapértelmezés szerint az összesre \rvonatkozik, \r\n és \n): az elemzéshez használandó sorelválasztót határozza meg.
  • samplingRatio (alapértelmezett 1.0): a sémakövetéshez használt bemeneti JSON-objektumok töredékét határozza meg.
  • dropFieldIfAllNull (alapértelmezett false): figyelmen kívül hagyja-e az összes null értékű oszlopot vagy üres tömböt/szerkezetet a sémakövetkeztetés során.
  • locale (alapértelmezés szerint en-US): sets nyelvi címkeként területi beállítás IETF BCP 47 formátumban. Ez például a dátumok és időbélyegek elemzésekor használatos.
  • allowNonNumericNumbers (alapértelmezett true): lehetővé teszi, hogy a JSON-elemző a nem szám (NaN) jogkivonatokat jogi lebegőszámértékként felismerje:
    • +INF pozitív végtelen, valamint aliasa +Infinity és Infinity.
    • -INF negatív végtelen), alias -Infinity.
    • NaN más nem a-számok esetében, például a nullával való osztás eredménye.
  • readerCaseSensitive (alapértelmezett true): a kis- és nagybetűk bizalmassági viselkedését adja meg, ha rescuedDataColumn engedélyezve van. Ha igaz, mentse azokat az adatoszlopokat, amelyeknek a neve esetenként eltér a sémától; ellenkező esetben a kis- és nagybetűket nem érzékelyítő módon olvassa be. A Databricks SQL-ben és a Databricks Runtime 13.3-ban és újabb verziókban érhető el.

Példák

> 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}