Funktionen from_json
Gäller för: Databricks SQL Databricks Runtime
Returnerar ett struct-värde med jsonStr
och schema
.
Syntax
from_json(jsonStr, schema [, options])
Argument
jsonStr
: Ett STRING-uttryck som anger ett json-dokument.schema
: Ett STRING-uttryck eller anrop av schema_of_json funktion.options
: En valfri MAP<STRING,STRING-literal> som anger direktiv.
jsonStr
bör vara välformulerad med avseende på schema
och options
.
schema
måste definieras som kommaavgränsat kolumnnamn och datatyppar som används i till exempel CREATE TABLE
. Innan Databricks Runtime 12.2 schema
måste vara en literal.
options
, om detta anges, kan vara något av följande:
primitivesAsString
(standardfalse
): härleder alla primitiva värden som en strängtyp.prefersDecimal
(standardfalse
): härleder alla flyttalsvärden som en decimaltyp. Om värdena inte får plats i decimaltecken, så härleds de som dubblar.allowComments
(standardfalse
): ignorerar Java- och C++-formatkommentarer i JSON-poster.allowUnquotedFieldNames
(standardfalse
): tillåter ociterade JSON-fältnamn.allowSingleQuotes
(standardtrue
): tillåter enkla citattecken utöver dubbla citattecken.allowNumericLeadingZeros
(standardfalse
): tillåter inledande nollor i tal (till exempel00012
).allowBackslashEscapingAnyCharacter
(standardfalse
): tillåter att citat av alla tecken accepteras med hjälp av mekanismen för omvänt snedstreck.allowUnquotedControlChars
(standardfalse
): tillåter att JSON-strängar innehåller ociterade kontrolltecken (ASCII-tecken med ett värde som är mindre än 32, inklusive flik- och radmatningstecken) eller inte.mode
(standardPERMISSIVE
): tillåter ett läge för att hantera skadade poster under parsning.PERMISSIVE
: När den möter en skadad post placerar du den felaktigt formulerade strängen i ett fält som konfigurerats avcolumnNameOfCorruptRecord
och anger felaktiga fält till null. Om du vill behålla skadade poster kan du ange ett strängtypsfält med namnetcolumnNameOfCorruptRecord
i ett användardefinierat schema. Om ett schema inte har fältet släpps skadade poster under parsningen. När du härleder ett schema lägger det implicit till ettcolumnNameOfCorruptRecord
fält i ett utdataschema.FAILFAST
: utlöser ett undantag när det möter skadade poster.
columnNameOfCorruptRecord
(standardvärdet är det värde som anges ispark.sql.columnNameOfCorruptRecord
): tillåter att det nya fältet byts namn med en felaktig sträng som skapats avPERMISSIVE
läget. Detta åsidosätterspark.sql.columnNameOfCorruptRecord
.dateFormat
(standardyyyy-MM-dd
): anger strängen som anger ett datumformat. Anpassade datumformat följer formaten i Datetime-mönster. Detta gäller för datumtyp.timestampFormat
(standardyyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
): anger strängen som anger ett tidsstämpelformat. Anpassade datumformat följer formaten i Datetime-mönster. Detta gäller för tidsstämpeltypen.multiLine
(standardfalse
): parsar en post, som kan sträcka sig över flera rader, per fil.encoding
(som standard är den inte inställd): tillåter att du med tvådällning anger en standardmässig grundläggande eller utökad kodning för JSON-filerna. Till exempel UTF-16BE, UTF-32LE. Om kodningen inte har angetts ochmultiLine
är inställd påtrue
identifieras den automatiskt.lineSep
(standardvärdet omfattar alla\r
,\r\n
och\n
): definierar den radavgränsare som ska användas för parsning.samplingRatio
(standard 1.0): definierar bråk av indata-JSON-objekt som används för schemainferering.dropFieldIfAllNull
(standardfalse
): om du vill ignorera kolumnen med alla null-värden eller tom matris/struct under schemainferens.locale
(standard ären-US
):sets
en språktagg i IETF BCP 47-format. Detta används till exempel vid parsning av datum och tidsstämplar.allowNonNumericNumbers
(standardtrue
): tillåter JSON-parser att identifiera en uppsättning token som inte är ett tal (NaN
) som lagliga flytande talvärden:+INF
för positiv oändlighet, samt alias för+Infinity
ochInfinity
.-INF
för negativ oändlighet), alias-Infinity
.NaN
för andra icke-a-tal, t.ex. resultat av division med noll.
readerCaseSensitive
(standardtrue
): anger beteendet för skiftlägeskänslighet närrescuedDataColumn
är aktiverat. Om det är sant kan du rädda de datakolumner vars namn skiljer sig från schemat. Annars läser du data på ett skiftlägesokänsligt sätt. Finns i Databricks SQL och Databricks Runtime 13.3 LTS och senare.
Returer
En struct med fältnamn och typer som matchar schemadefinitionen.
Exempel
> 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}
Relaterade
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för