from_json-functie

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Retourneert een struct-waarde met de jsonStr en schema.

Syntaxis

from_json(jsonStr, schema [, options])

Argumenten

  • jsonStr: een TEKENREEKS-expressie die een json-document opgeeft.
  • schema: Een TEKENREEKS-expressie of aanroep van schema_of_json functie.
  • options: Een optionele MAP<STRING, letterlijke tekenreeks> die instructies specificeert.

jsonStr moet goed worden gevormd met betrekking tot schema en options.

schema moet worden gedefinieerd als door komma's gescheiden kolomnaam en gegevenstypeparen, zoals wordt gebruikt in bijvoorbeeld CREATE TABLE. Vóór Databricks Runtime 12.2 schema moet een letterlijke naam zijn.

options, indien opgegeven, kan een van de volgende zijn:

  • primitivesAsString (standaard false): geeft alle primitieve waarden af als een tekenreekstype.
  • prefersDecimal (standaard false): geeft alle drijvende-kommawaarden af als een decimaal type. Als de waarden niet in decimalen passen, worden ze afgeleid als dubbele waarden.
  • allowComments (standaard false): negeert opmerking in Java- en C++-stijl in JSON-records.
  • allowUnquotedFieldNames (standaard false): staat niet-vermelde JSON-veldnamen toe.
  • allowSingleQuotes (standaard true): staat enkele aanhalingstekens toe naast dubbele aanhalingstekens.
  • allowNumericLeadingZeros (standaard false): staat voorloopnullen toe in getallen (bijvoorbeeld 00012).
  • allowBackslashEscapingAnyCharacter (standaard false): staat het accepteren van het quoteren van alle tekens toe met behulp van het backslash-quotingmechanisme.
  • allowUnquotedControlChars (standaard false): staat JSON-tekenreeksen toe om niet-aanhalingstekens te bevatten (ASCII-tekens met een waarde kleiner dan 32, inclusief tab- en regelinvoertekens) of niet.
  • mode (standaard PERMISSIVE): staat een modus toe voor het verwerken van beschadigde records tijdens het parseren.
    • PERMISSIVE: wanneer deze voldoet aan een beschadigde record, plaatst u de ongeldige tekenreeks in een veld dat is geconfigureerd door columnNameOfCorruptRecorden stelt u ongeldige velden in op null. Als u beschadigde records wilt behouden, kunt u een tekenreekstypeveld instellen met de naam columnNameOfCorruptRecord in een door de gebruiker gedefinieerd schema. Als een schema het veld niet heeft, worden beschadigde records verwijderd tijdens het parseren. Bij het uitstellen van een schema wordt impliciet een columnNameOfCorruptRecord veld in een uitvoerschema toegevoegd.
    • FAILFAST: genereert een uitzondering wanneer deze voldoet aan beschadigde records.
  • columnNameOfCorruptRecord (standaard is de waarde die is opgegeven in spark.sql.columnNameOfCorruptRecord): staat het wijzigen van de naam van het nieuwe veld toe met een ongeldige tekenreeks die is gemaakt door PERMISSIVE de modus. Dit overschrijft spark.sql.columnNameOfCorruptRecord.
  • dateFormat (standaard yyyy-MM-dd): stelt de tekenreeks in die een datumnotatie aangeeft. Aangepaste datumnotaties volgen de notaties bij Datum/tijd-patronen. Dit is van toepassing op het datumtype.
  • timestampFormat (standaard yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): stelt de tekenreeks in die een tijdstempelnotatie aangeeft. Aangepaste datumnotaties volgen de notaties bij Datum/tijd-patronen. Dit is van toepassing op het type tijdstempel.
  • multiLine (standaard false): parseert één record, die meerdere regels per bestand kan omvatten.
  • encoding (standaard is deze niet ingesteld): staat toe om een standaard basis- of uitgebreide codering voor de JSON-bestanden geforceerd in te stellen. Bijvoorbeeld UTF-16BE, UTF-32LE. Als de codering niet is opgegeven en multiLine is ingesteld op true, wordt deze automatisch gedetecteerd.
  • lineSep(standaard dekt alle \ren \n\r\n ): definieert het regelscheidingsteken dat moet worden gebruikt voor parseren.
  • samplingRatio (standaard 1.0): definieert het deel van de invoer-JSON-objecten die worden gebruikt voor het uitstellen van schema's.
  • dropFieldIfAllNull (standaard false): of de kolom met alle null-waarden of lege matrix/struct tijdens schemadeductie moet worden genegeerd.
  • locale (standaard is en-US): sets een landinstelling als taaltag in IETF BCP 47-indeling. Dit wordt bijvoorbeeld gebruikt tijdens het parseren van datums en tijdstempels.
  • allowNonNumericNumbers (standaard true): staat JSON-parser toe om set tokens zonder getal (NaN) te herkennen als juridische zwevende getalwaarden:
    • +INF voor positieve oneindigheid, evenals alias van +Infinity en Infinity.
    • -INF voor negatief oneindigheid), alias -Infinity.
    • NaN voor andere not-a-numbers, zoals het resultaat van delen door nul.
  • readerCaseSensitive (standaard true): hiermee geeft u het gedrag van hoofdlettergevoeligheid op wanneer rescuedDataColumn deze is ingeschakeld. Indien waar, redt u de gegevenskolommen waarvan de namen verschillen per geval van het schema; lees anders de gegevens op een niet-hoofdlettergevoelige manier. Beschikbaar in Databricks SQL en Databricks Runtime 13.3 LTS en hoger.

Retouren

Een struct met veldnamen en -typen die overeenkomen met de schemadefinitie.

Voorbeelden

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