from_jsonfunction (Databricks SQL)

Gibt einen Strukturwert mit und jsonStrschema zurück.

Syntax

from_json(jsonStr, schema [, options])

Argumente

  • jsonStr: Ein STRING-Ausdruck, der eine Zeile mit CSV-Daten angibt.
  • schema: Ein STRING-Literal oder aufruft schema_of_json schema
  • options: Ein optionales MAP <> STRING,STRING-Literal, das Anweisungen angibt.

Gibt zurück

Eine Struktur mit Feldnamen und Typen, die mit der Schemadefinition übereinstimmen.

jsonStr sollte in Bezug auf und schema wohlgeformt options sein. schema muss wie in verwendet als durch Komma getrennte Spaltennamen- und Datentyppaare definiert werden, z. CREATE TABLE B. .

options, sofern angegeben, kann eine der folgenden Sein:

  • primitivesAsStringfalse(Standard): Abgeleitet alle primitiven Werte als Zeichenfolgentyp.
  • prefersDecimalfalse(Standard): Abgeleitet alle Gleitkommawerte als Dezimaltyp. Wenn die Werte nicht in decimal passen, werden sie als doubles abgeleitet.
  • allowCommentsfalse(Standardeinstellung): Ignoriert Java- und C++-Kommentare in JSON-Datensätzen.
  • allowUnquotedFieldNamesfalse(Standardeinstellung): lässt JSON-Feldnamen ohne Anführungsansicht zu.
  • allowSingleQuotestrue(Standard): lässt neben doppelten Anführungszeichen auch einfache Anführungszeichen zu.
  • allowNumericLeadingZerosfalse(Standard): lässt führende Nullen in Zahlen zu (z. B. 00012 ).
  • allowBackslashEscapingAnyCharacterfalse(Standardeinstellung): Ermöglicht das Akzeptieren von An quoting aller Zeichen mithilfe des Backslash-An quotingsmechanismus.
  • allowUnquotedControlChars (Standard): Ermöglicht JSON-Zeichenfolgen, Steuerzeichen ohne Anführungszeichen (ASCII-Zeichen mit einem Wert kleiner als 32, einschließlich Tabstopp- und false Zeilenfeedzeichen) oder nicht zu enthalten.
  • modePERMISSIVE(Standard): ermöglicht einen Modus für den Umgang mit beschädigten Datensätzen während der Analyse.
    • PERMISSIVE: Wenn ein beschädigter Datensatz erfüllt wird, legt die falsch formatierte Zeichenfolge in ein von konfiguriertes Feld fest und legt falsch formatierte columnNameOfCorruptRecord Felder auf NULL fest. Um beschädigte Datensätze zu erhalten, können Sie ein Zeichenfolgentypfeld mit dem Namen columnNameOfCorruptRecord in einem benutzerdefinierten Schema festlegen. Wenn ein Schema nicht über das Feld verfügt, löscht es beschädigte Datensätze während der Analyse. Wenn ein Schema abgeleitet wird, fügt es implizit ein Feld columnNameOfCorruptRecord in einem Ausgabeschema hinzu.
    • FAILFAST: Löst eine Ausnahme aus, wenn beschädigte Datensätze erfüllt werden.
  • columnNameOfCorruptRecord (Der Standardwert ist der in angegebene Wert): Ermöglicht das Umbenennen des neuen Felds mit falsch formatierten Zeichenfolgen, die spark.sql.columnNameOfCorruptRecord vom Modus erstellt PERMISSIVE wurden. Dadurch wird spark.sql.columnNameOfCorruptRecord überschrieben.
  • dateFormatyyyy-MM-dd(Standard): Legt die Zeichenfolge fest, die ein Datumsformat angibt. Benutzerdefinierte Datumsformate folgen den Formaten unter Databricks SQL datetime patterns. Dies gilt für den Datumstyp.
  • timestampFormatyyyy-MM-dd'T'HH:mm:ss[.SSS][XXX](Standard): Legt die Zeichenfolge fest, die ein Zeitstempelformat angibt. Benutzerdefinierte Datumsformate folgen den Formaten unter Databricks SQL datetime patterns. Dies gilt für den Zeitstempeltyp.
  • multiLinefalse(Standard): Analysiert einen Datensatz, der mehrere Zeilen pro Datei umfassen kann.
  • encoding (Standardmäßig ist es nicht festgelegt): ermöglicht das Erzringen einer standard-Basic- oder erweiterten Codierung für die JSON-Dateien. Beispiel: UTF-16BE, UTF-32LE. Wenn die Codierung nicht angegeben und multiLine auf festgelegt true ist, wird sie automatisch erkannt.
  • lineSep (Standard gilt für \r alle , und ): definiert das \r\n\n Zeilentrennzeichen, das für die Analyse verwendet werden soll.
  • samplingRatio (Standard 1.0): Definiert den Bruchteil der JSON-Eingabeobjekte, die für die Schemainferierung verwendet werden.
  • dropFieldIfAllNull (Standard): Gibt an, ob die Spalte aller NULL-Werte oder ein leeres Array/eine leere Struktur während des false Schemarückschlusses ignoriert werden soll.
  • locale (Standardeinstellung: en-US ): sets ein Locale als Sprachtag im IETF BCP 47-Format. Dies wird beispielsweise beim Analyse von Datums- und Zeitstempeln verwendet.
  • allowNonNumericNumbers (Standard): Ermöglicht dem JSON-Parser das Erkennen von Token ohne true Eine-Zahl () NaN als gesetzliche Gleitkommawerte:
    • +INF für positive Unendlichkeit sowie alias von +Infinity und Infinity .
    • -INF für negative Unendlichkeit), Alias -Infinity .
    • NaN für andere Nicht-a-Zahlen, z. B. das Ergebnis der Division durch 0 (null).

Beispiele

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