from_jsonfunction (Databricks SQL)

Zwraca wartość struktury z wartościami jsonStr i schema .

Składnia

from_json(jsonStr, schema [, options])

Argumenty

  • jsonStr: wyrażenie STRING określające wiersz danych CSV.
  • schema: literał CIĄGU lub wywołania funkcji schema
  • options: opcjonalny ciąg < mapy, > literał ciągu określający dyrektywy.

Zwraca

Struktura z nazwami pól i typami pasującymi do definicji schematu.

jsonStr powinna być dobrze uformowana w odniesieniu do schema i options . schema musi być zdefiniowany jako rozdzielana przecinkami nazwa kolumny i pary typów danych, jak w przykładzie CREATE TABLE .

options, jeśli zostanie podany, może być dowolną z następujących czynności:

  • primitivesAsString (wartość false domyślna): wnioskuje wszystkie wartości pierwotne jako typ ciągu.
  • prefersDecimal (wartość false domyślna): wnioskuje wszystkie wartości zmiennoprzecinkowe jako typ dziesiętny. Jeśli wartości nie mieszczą się w liczbach dziesiętnych, są one wywnioskowywne jako liczby podwójne.
  • allowComments (ustawienie domyślne): ignoruje komentarz w stylu języka Java i false C++ w rekordach JSON.
  • allowUnquotedFieldNames (wartość false domyślna): zezwala na nazwy pól JSON bez kuto.
  • allowSingleQuotes (wartość true domyślna): umożliwia korzystanie z cudzysłowów pojedynczych oprócz cudzysłowów.
  • allowNumericLeadingZeros (wartość false domyślna): umożliwia wiodące zera w liczbach (na przykład 00012 ).
  • allowBackslashEscapingAnyCharacter (wartość false domyślna): umożliwia akceptowanie cudzysłowy wszystkich znaków przy użyciu mechanizmu cudzysłowego ukośnika odwrotnego.
  • allowUnquotedControlChars (wartość domyślna): umożliwia ciągom JSON zawieranie znaków kontrolnych bez kucięcia (znaki ASCII o wartości mniejszej niż 32, w tym znaki tabulatora i false wiersza).
  • mode (wartość PERMISSIVE domyślna): umożliwia tryb radzenia sobie z uszkodzonymi rekordami podczas analizowania.
    • PERMISSIVE: gdy spełnia on uszkodzony rekord, umieszcza nieprawidłowo sformułowany ciąg w polu skonfigurowanym przez program i ustawia źle sformułowane columnNameOfCorruptRecord pola na wartość null. Aby zachować uszkodzone rekordy, można ustawić pole typu ciągu o nazwie columnNameOfCorruptRecord w schemacie zdefiniowanym przez użytkownika. Jeśli schemat nie ma pola , podczas analizowania spada uszkodzone rekordy. Podczas wnioskowania schematu niejawnie dodaje pole columnNameOfCorruptRecord w schemacie wyjściowym.
    • FAILFAST: zgłasza wyjątek, gdy spełnia uszkodzone rekordy.
  • columnNameOfCorruptRecord (wartość domyślna to wartość określona w pliku ): umożliwia zmianę nazwy nowego pola ze spark.sql.columnNameOfCorruptRecord źle sformułowanym ciągiem utworzonym przez PERMISSIVE tryb. Zastępuje to metodę spark.sql.columnNameOfCorruptRecord .
  • dateFormat (wartość yyyy-MM-dd domyślna): ustawia ciąg, który wskazuje format daty. Niestandardowe formaty dat są zgodne z formatami w temacie Databricks SQL datetime patterns (Wzorce daty/godziny). Dotyczy to typu daty.
  • timestampFormat (wartość yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] domyślna): ustawia ciąg, który wskazuje format znacznika czasu. Niestandardowe formaty dat są zgodne z formatami w temacie Databricks SQL datetime patterns (Wzorce daty/godziny). Dotyczy to typu znacznika czasu.
  • multiLine (wartość false domyślna): analizuje jeden rekord, który może obejmować wiele wierszy, na plik.
  • encoding (domyślnie nie jest ustawiona): umożliwia wymuszenie ustawienia jednego ze standardowych podstawowych lub rozszerzonych kodowań dla plików JSON. Na przykład UTF-16BE, UTF-32LE. Jeśli kodowanie nie zostanie określone i multiLine zostanie ustawione na wartość , zostanie wykryte true automatycznie.
  • lineSep (domyślnie obejmuje wszystkie znaki , i ): definiuje separator wiersza, \r który powinien być używany do \r\n\n analizowania.
  • samplingRatio (domyślnie 1.0): definiuje ułamek wejściowych obiektów JSON używanych do wnioskowania schematu.
  • dropFieldIfAllNull (wartość domyślna): czy podczas wnioskowania schematu ma być ignorowana kolumna zawierająca wszystkie wartości null, czy pusta false tablica/struktura.
  • locale (wartość en-US domyślna to ): sets ustawienia lokalne jako tag języka w formacie IETF BCP 47. Na przykład jest to używane podczas analizowania dat i znaczników czasu.
  • allowNonNumericNumbers (wartość true domyślna): umożliwia parserowi JSON rozpoznawanie zestawu tokenów nie-a-liczbowych () jako liczb liczb NaN zmiennoprzecinkowych:
    • +INF w przypadku nieskończoności dodatniej, a także aliasów +Infinity i Infinity .
    • -INF dla nieskończoności ujemnej), alias -Infinity .
    • NaN w przypadku innych wartości nie-liczbowych, takich jak wynik dzielenia przez zero.

Przykłady

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