Sdílet prostřednictvím


Funkce from_json

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime

Vrátí hodnotu struktury s hodnotou jsonStr a schema.

Syntaxe

from_json(jsonStr, schema [, options])

Argumenty

  • jsonStr: Výraz STRING určující dokument JSON.
  • schema: Výraz STRING nebo vyvolání schema_of_json funkce.
  • options: Volitelný MAP<STRING,STRING> literál určující direktivy.

jsonStr by měla být dobře vytvořená s ohledem na schema a options.

schema musí být definován jako názvy sloupců oddělených čárkami a páry datových typů, jak se používá například CREATE TABLE. Před databricks Runtime 12.2 schema musí být literál.

options, pokud je uvedeno, může být některá z těchto možností:

  • primitivesAsString (výchozí false): Odvodí všechny primitivní hodnoty jako typ řetězce.
  • prefersDecimal (výchozí false): Odvodí všechny hodnoty s plovoucí desetinnou čárkou jako desetinný typ. Pokud se hodnoty nevejdou do desetinných míst, odvodí je jako dvojité.
  • allowComments (výchozí false): ignoruje komentář stylu Java a C++ v záznamech JSON.
  • allowUnquotedFieldNames (výchozí false): Povoluje názvy polí JSON bez citování.
  • allowSingleQuotes (výchozí true): Umožňuje jednoduché uvozovky kromě dvojitých uvozovek.
  • allowNumericLeadingZeros (výchozí false): umožňuje počáteční nuly v číslech (například 00012).
  • allowBackslashEscapingAnyCharacter (výchozí false): umožňuje přijmout uvozování všech znaků pomocí mechanismu uvozování zpětného lomítka.
  • allowUnquotedControlChars (výchozí false): Umožňuje řetězcům JSON obsahovat necitované řídicí znaky (ZNAKY ASCII s hodnotou menší než 32, včetně znaků tabulátoru a odřádkování) nebo ne.
  • mode (výchozí PERMISSIVE): Umožňuje režim pro práci s poškozenými záznamy během analýzy.
    • PERMISSIVE: Když splňuje poškozený záznam, umístí poškozený řetězec do pole nakonfigurovaného columnNameOfCorruptRecordpomocí a nastaví poškozená pole na hodnotu null. Chcete-li zachovat poškozené záznamy, můžete nastavit pole typu řetězce pojmenované columnNameOfCorruptRecord ve schématu definovaném uživatelem. Pokud schéma pole neobsahuje, během analýzy zahodí poškozené záznamy. Při odvození schématu implicitně přidá columnNameOfCorruptRecord pole ve výstupním schématu.
    • FAILFAST: vyvolá výjimku, když splňuje poškozené záznamy.
  • columnNameOfCorruptRecord (výchozí hodnota je hodnota zadaná v spark.sql.columnNameOfCorruptRecord): Umožňuje přejmenování nového pole s poškozeným řetězcem vytvořeným režimem PERMISSIVE . Toto přepsání spark.sql.columnNameOfCorruptRecord.
  • dateFormat (výchozí yyyy-MM-dd): nastaví řetězec, který označuje formát data. Vlastní formáty kalendářních dat se řídí formáty v vzorech datetime. To platí pro typ data.
  • timestampFormat (výchozí yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): nastaví řetězec, který označuje formát časového razítka. Vlastní formáty kalendářních dat se řídí formáty v vzorech datetime. To platí pro typ časového razítka.
  • multiLine (výchozí false): parsuje jeden záznam, který může zahrnovat více řádků na soubor.
  • encoding (ve výchozím nastavení není nastaveno): Umožňuje vynuceně nastavit jeden ze standardních základních nebo rozšířených kódování pro soubory JSON. Například UTF-16BE, UTF-32LE. Pokud není zadáno kódování a multiLine je nastaveno na true, je rozpoznáno automaticky.
  • lineSep(výchozí hodnota pokrývá vše \r\r\n a \n): definuje oddělovač řádků, který se má použít k analýze.
  • samplingRatio (výchozí hodnota 1.0): definuje zlomek vstupních objektů JSON používaných pro odvození schématu.
  • dropFieldIfAllNull (výchozí false): zda se má při odvozování schématu ignorovat sloupec všech hodnot null nebo prázdné pole nebo struktura.
  • locale (výchozí hodnota je en-US): sets národní prostředí jako značka jazyka ve formátu IETF BCP 47. Používá se například při analýze kalendářních dat a časových razítek.
  • allowNonNumericNumbers (výchozí true): Umožňuje analyzátoru JSON rozpoznat sadu tokenů not a-number (NaN) jako zákonné číselné hodnoty s plovoucí desetinou čárkou:
    • +INF pro kladné nekonečno, stejně jako alias a +Infinity Infinity.
    • -INF pro záporné nekonečno), alias -Infinity.
    • NaN pro jiná nečísaná čísla, například výsledek dělení nulou.
  • readerCaseSensitive (výchozí true): Určuje chování citlivosti případu, pokud rescuedDataColumn je povoleno. Pokud je pravda, zachorání sloupce dat, jejichž názvy se liší písmeny od schématu; v opačném případě čte data bez rozlišování velkých a malých písmen. K dispozici v Databricks SQL a Databricks Runtime 13.3 LTS a novějších.

Návraty

Struktura s názvy polí a typy odpovídající definici schématu.

Příklady

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