from_json-functie

Retourneert een struct-waarde met jsonStr de en schema .

Syntaxis

from_json(jsonStr, schema [, options])

Argumenten

  • jsonStr: een STRING-expressie die een rij met CSV-gegevens opgeeft.
  • schema: Een letterlijke tekenreeks of aanroep van schema.
  • options: Een optionele instructies < voor het opgeven van tekenreeksen voor tekenreeksen en > letterlijke tekenreeksen.

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 (standaard): alle primitieve waarden worden als false een tekenreekstype afleiden.
  • prefersDecimalfalse(standaard): alle drijvende-kommawaarden worden als decimaal type afleiden. Als de waarden niet in het decimaalteken passen, worden deze als twee keer zo hoog weergegeven.
  • allowCommentsfalse(standaard): negeert opmerking in Java- en C++-stijl in JSON-records.
  • allowUnquotedFieldNamesfalse(standaard): hiermee staat u JSON-veldnamen zonder aanvermelding toe.
  • allowSingleQuotestrue(standaard): staat enkele aanhalingstekens toe naast dubbele aanhalingstekens.
  • allowNumericLeadingZerosfalse(standaard): staat voor nullen in getallen toe (bijvoorbeeld 00012 ).
  • allowBackslashEscapingAnyCharacterfalse(standaard): hiermee staat u het accepteren van aanhalen van alle tekens met behulp van het mechanisme voor backslash-aanhalen toe.
  • allowUnquotedControlChars (standaard): hiermee staat u toe dat JSON-tekenreeksen zonder aaneentekens (ASCII-tekens met een waarde kleiner dan 32, inclusief tab- en regelfeedtekens) al dan niet false bevatten.
  • modePERMISSIVE(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 ongeldige columnNameOfCorruptRecord 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 in een uitvoerschema toegevoegd.
    • FAILFAST: geeft een uitzondering wanneer deze voldoet aan beschadigde records.
  • columnNameOfCorruptRecord (standaard 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 wordt spark.sql.columnNameOfCorruptRecord overschrijven.
  • dateFormatyyyy-MM-dd(standaard): hiermee stelt u de tekenreeks in die een datumnotatie aangeeft. Aangepaste datumnotaties volgen de notaties bij Datum/tijd-patronen. Dit is van toepassing op datumtype.
  • timestampFormatyyyy-MM-dd'T'HH:mm:ss[.SSS][XXX](standaard): hiermee stelt u de tekenreeks in die een tijdstempelnotatie aangeeft. Aangepaste datumnotaties volgen de notaties bij Datum/tijd-patronen. Dit geldt voor het type tijdstempel.
  • multiLinefalse(standaard): parseert één record, die meerdere regels kan overspannen, per bestand.
  • encoding (standaard niet ingesteld): hiermee kunt u gecibeerd een standaard basiscode of uitgebreide codering instellen voor de JSON-bestanden. 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 het regelscheidingsteken dat \r moet worden gebruikt voor \r\n\n parseren.
  • samplingRatio (standaard 1.0): definieert een fractie van de invoer-JSON-objecten die worden gebruikt voor schemadefinie.
  • dropFieldIfAllNull (standaard): of de kolom met alle null-waarden of een lege matrix/struct moet worden genegeerd false tijdens schemadeferentie.
  • locale (de standaardinstelling is en-US ): sets een taaltag voor de taal in IETF BCP 47-indeling. Dit wordt bijvoorbeeld gebruikt tijdens het parseren van datums en tijdstempels.
  • allowNonNumericNumberstrue(standaard): hiermee kan JSON-parser een set niet-een-getal () tokens herkennen als juridische NaN drijvende-getalwaarden:
    • +INF voor positieve oneindigheid, evenals 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}