from_jsonfüggvény (Databricks SQL)

Egy strukturálható értéket ad vissza a és jsonStr a schema értékkel.

Szintaxis

from_json(jsonStr, schema [, options])

Argumentumok

  • jsonStr: EGY CSV-adatsort megszabadó SZTRING-kifejezés.
  • schema: SZTRING konstans vagy egy schema_of_json schema.
  • options: Nem kötelező MAP < STRING,STRING > literál megadásával kapcsolatos direktíva.

Válaszok

A sémadefiníciónak megfelelő mezőnevekkel és típusokkal felépítésű strukturál.

jsonStr A és a figyelembe kell, hogy legyen schemaoptions va. schema Vesszővel elválasztott oszlopnév- és adattípuspárokként kell definiálni, például: CREATE TABLE .

optionsHa meg van téve, a következők bármelyike lehet:

  • primitivesAsStringfalse(alapértelmezett): minden primitív értéket sztringtípusként ad ki.
  • prefersDecimal (alapértelmezett): az összes lebegőpontos értéket false decimális típusként adja meg. Ha az értékek nem férnek el tizedes törtben, akkor dupla értékként lesz kivetve.
  • allowComments (alapértelmezett): figyelmen kívül hagyja a Java és false a C++ stílus megjegyzéseit a JSON-rekordokban.
  • allowUnquotedFieldNamesfalse(alapértelmezett): lehetővé teszi a JSON-mezőnevek idézőjelek nélküli elnevezését.
  • allowSingleQuotes (alapértelmezett): a dupla idézőjelek mellett true akkénti idézőjeleket is lehetővé tesz.
  • allowNumericLeadingZerosfalse(alapértelmezett): bevezető nullákat tesz lehetővé számokban (például 00012 ).
  • allowBackslashEscapingAnyCharacter (alapértelmezett): lehetővé teszi az összes karakter idézését false a perjeles hányados mechanizmus használatával.
  • allowUnquotedControlChars (alapértelmezett): lehetővé teszi, hogy a JSON-sztringek idézőjelek nélküli vezérlő karaktereket tartalmazzanak (32-esnél kisebb értékű ASCII-karaktereket, beleértve a tabulátor- és sorcsatorna-karaktereket) vagy false nem.
  • mode (alapértelmezett): lehetővé teszi a módot a sérült PERMISSIVE rekordok kezeléshez az elemezés során.
    • PERMISSIVE: ha sérült rekordnak felel meg, a hibásan formázott sztringet a által konfigurált mezőbe helyezi, és a hibásan formázott mezőket null értékűre columnNameOfCorruptRecord állítja. A sérült rekordokhoz be lehet állítani egy nevű sztringtípusmezőt columnNameOfCorruptRecord egy felhasználó által definiált sémában. Ha egy séma nem rendelkezik a mezővel, az elemzési időszakban eldobja a sérült rekordokat. Egy séma ki következtetésekor implicit módon hozzáad egy mezőt egy columnNameOfCorruptRecord kimeneti sémához.
    • FAILFAST: kivételt ad vissza, ha sérült rekordoknak felel meg.
  • columnNameOfCorruptRecord(az alapértelmezett érték a következőben van megadva: ): lehetővé teszi az új mezőnek a mód által létrehozott helytelenül spark.sql.columnNameOfCorruptRecord formázott sztringet. PERMISSIVE Ez felülírja spark.sql.columnNameOfCorruptRecord a et.
  • dateFormatyyyy-MM-dd(alapértelmezett): beállítja a dátumformátumot jelző sztringet. Az egyéni dátumformátumok a Databricks dátum/idő SQL formátumát követik. Ez a dátumtípusra vonatkozik.
  • timestampFormat (alapértelmezett): beállítja az időbélyeg-formátumot yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] jelző sztringet. Az egyéni dátumformátumok a Databricks dátum/idő SQL formátumát követik. Ez az időbélyeg-típusra vonatkozik.
  • multiLinefalse(alapértelmezett): egy rekordot elemez, amely fájlonként több sorra is kihathat.
  • encoding (alapértelmezés szerint nincs beállítva): lehetővé teszi a JSON-fájlok szabványos alapszintű vagy kiterjesztett kódolásának gyors beállítását. Például UTF-16BE, UTF-32LE. Ha a kódolás nincs megadva, és a multiLine beállítása , a rendszer automatikusan true észleli.
  • lineSep (az alapértelmezett érték az \r összes , \r\n és típust lefedi): az elemezéshez használt sorelválasztót \n határozza meg.
  • samplingRatio (alapértelmezett 1.0): a séma-következtetéshez használt bemeneti JSON-objektumok hányadát határozza meg.
  • dropFieldIfAllNull (alapértelmezett): azt határozza meg, hogy a rendszer figyelmen kívül hagyja-e az összes null értéket tartalmazó oszlopot vagy az üres false tömböt/strukturát a séma következtetése során.
  • locale (az alapértelmezett en-US érték): sets nyelvcímkeként használt nyelv, IETF BCP 47 formátumban. Ez például a dátumok és időbélyegek elemezésében használatos.
  • allowNonNumericNumbers (alapértelmezett): lehetővé teszi, hogy a JSON-elemző jogi lebegő számértékekként ismerje fel a nem true szám ( ) jogkivonatok NaN készletét:
    • +INF a pozitív végtelenséghez, valamint a és +InfinityInfinity aliasa.
    • -INF negatív végtelenség esetén), -Infinity alias.
    • NaN a többi nem számhoz, például a nullával való osztás eredményhez.

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}