Funkce from_json
Platí pro: Databricks SQL
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říklad00012
).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éhocolumnNameOfCorruptRecord
pomocí 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á vspark.sql.columnNameOfCorruptRecord
): Umožňuje přejmenování nového pole s poškozeným řetězcem vytvořeným režimemPERMISSIVE
. 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í amultiLine
je nastaveno natrue
, 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 jeen-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, pokudrescuedDataColumn
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}
Související
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro