from_json-functie

Retourneert een struct-waarde met de jsonStr en schema .

Syntaxis

from_json(jsonStr, schema [, options])

Argumenten

  • jsonStr: een TEKENREEKSexpressie die een rij met CSV-gegevens opgeeft.
  • schema: Een letterlijke tekenreeks of aanroep van schema_of_json functie.
  • options: Een optionele MAP<,STRING> letterlijke opgeeft instructies.

Retouren

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

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 .

optionsindien opgegeven, kan een van de volgende zijn:

  • primitivesAsString````false(standaard): alle primitieve waarden worden als tekenreekstype af afleiden.
  • prefersDecimal````false(standaard): alle drijvende-kommawaarden worden als decimaal type af afleiden. Als de waarden niet in het decimaalteken passen, worden deze als twee keer zo weergegeven.
  • allowComments (standaard): negeert opmerkingen in De stijl java en false C++ in JSON-records.
  • allowUnquotedFieldNames````false(standaard): hiermee staat u namen van JSON-velden zonder aanvermelding toe.
  • allowSingleQuotes````true(standaard): staat enkele aanhalingstekens toe naast dubbele aanhalingstekens.
  • allowNumericLeadingZeros````false(standaard): staat voor nullen in getallen toe (bijvoorbeeld 00012 ).
  • allowBackslashEscapingAnyCharacter (standaard): staat het accepteren van aanhalen van alle tekens toe met behulp false van een backslash-quotingmechanisme.
  • allowUnquotedControlChars (standaard): hiermee kunnen JSON-tekenreeksen besturingselementen zonder aaneenvolgend teken (ASCII-tekens met een waarde kleiner dan false 32, inclusief tab- en regelfeedtekens) bevatten.
  • mode````PERMISSIVE(standaard): hiermee staat u een modus toe voor het afhandelen van beschadigde records tijdens het parseren.
    • PERMISSIVE: wanneer deze voldoet aan een beschadigd record, plaatst de ongeldige tekenreeks in een veld dat is geconfigureerd door en stelt columnNameOfCorruptRecord ongeldige velden in op null. Als u beschadigde records wilt behouden, kunt u een tekenreekstypeveld met de naam columnNameOfCorruptRecord instellen in een door de gebruiker gedefinieerd schema. Als een schema het veld niet bevat, worden beschadigde records tijdens het parseren wegvalt. Bij het afleiden van een schema wordt impliciet een veld columnNameOfCorruptRecord toegevoegd in een uitvoerschema.
    • FAILFAST: geeft een uitzondering weer wanneer deze voldoet aan beschadigde records.
  • columnNameOfCorruptRecord (de standaardwaarde is de waarde die is opgegeven in ): hiermee kunt u de naam van het nieuwe veld wijzigen met een verkeerd spark.sql.columnNameOfCorruptRecord gevormde tekenreeks die door de modus is PERMISSIVE gemaakt. Hiermee overschrijven we spark.sql.columnNameOfCorruptRecord .
  • dateFormat````yyyy-MM-dd(standaard): hiermee stelt u de tekenreeks in die een datumnotatie aangeeft. Aangepaste datumnotaties volgen de notaties in Databricks SQL datum/tijd-patronen. Dit is van toepassing op datumtype.
  • timestampFormat````yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX](standaard): hiermee stelt u de tekenreeks in die een tijdstempelnotatie aangeeft. Aangepaste datumnotaties volgen de notaties in Databricks SQL datum/tijd-patronen. Dit is van toepassing op het type tijdstempel.
  • multiLine````false(standaard): parseert één record, die meerdere regels kan overspannen, per bestand.
  • encoding (standaard niet ingesteld): hiermee kunt u gecimeerd een van de standaard basis- of uitgebreide codering voor de JSON-bestanden instellen. Bijvoorbeeld UTF-16BE, UTF-32LE. Als de codering niet is opgegeven en multiLine is ingesteld op , wordt deze automatisch true gedetecteerd.
  • lineSep (standaard geldt voor alle , en ): hiermee definieert u \r het regelscheidingsteken dat moet worden gebruikt voor het \r\n \n parseren.
  • samplingRatio (standaard 1.0): definieert de fractie van de JSON-invoerobjecten die worden gebruikt voor schemadefinie.
  • dropFieldIfAllNull````false(standaard): of de kolom met alle null-waarden of een lege matrix/struct moet worden genegeerd tijdens schemadeferentie.
  • locale (de standaardinstelling en-US is): een taaltag voor de taal in sets IETF BCP 47-indeling. Dit wordt bijvoorbeeld gebruikt tijdens het parseren van datums en tijdstempels.
  • allowNonNumericNumbers````true(standaard): hiermee kan JSON-parser een set not-a-number ( ) tokens herkennen NaN als juridische drijvende-getalwaarden:
    • +INF voor positieve oneindigheid, evenals de alias van +Infinity en Infinity .
    • -INF voor negatieve oneindigheid), alias -Infinity .
    • NaN voor andere niet-a-getallen, zoals het resultaat van deling door nul.

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}