Udostępnij za pośrednictwem


Funkcja from_csv

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

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

Składnia

from_csv(csvStr, schema [, options])

Argumenty

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

Zwraca

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

csvStr powinny być dobrze sformułowane w odniesieniu do i schemaoptions. schema należy zdefiniować jako pary nazw kolumn i typów danych oddzielone przecinkami, tak jak używane jest to na przykład w CREATE TABLE.

options, jeśli podano, może to być dowolny z następujących elementów:

  • sep (ustawienie domyślne ,): ustawia separator dla każdego pola i wartości. Ten separator może być co najmniej jednym znakiem.
  • encoding (wartość domyślna UTF-8): dekoduje pliki CSV według określonego typu kodowania.
  • quote (domyślna "): ustawia pojedynczy znak używany do oznaczania wartości w cudzysłowie, gdzie separator może być częścią wartości. Aby wyłączyć cudzysłowy, musisz ustawić pusty ciąg zamiast null. To zachowanie różni się od com.databricks.spark.csv.
  • escape (wartość domyślna \): ustawia pojedynczy znak używany do ucieczki cudzysłowów wewnątrz już cytowanej wartości.
  • charToEscapeQuoteEscaping (wartość domyślna escape lub \0): ustawia pojedynczy znak używany do ucieczki znaku cudzysłowu. Wartość domyślna to znak ucieczki, gdy escape znaki i quote są inne, \0 w przeciwnym razie.
  • comment (domyślny pusty ciąg): ustawia pojedynczy znak używany do pomijania wierszy rozpoczynających się od tego znaku. Domyślnie jest on wyłączony.
  • nagłówek (domyślny false): używa pierwszego wiersza jako nazw kolumn.
  • enforceSchema (domyślna true): jeśli ustawiona jest na prawdę, określony lub wywnioskowany schemat jest wymuszany w plikach źródła danych, a nagłówki w plikach CSV są ignorowane. Jeśli opcja jest ustawiona na false, schemat jest weryfikowany dla wszystkich nagłówków w plikach CSV w przypadku, gdy opcja nagłówka jest ustawiona na true. Nazwy pól w schemacie oraz nazwy kolumn w nagłówkach CSV są sprawdzane pod względem ich pozycji, uwzględniając spark.sql.caseSensitive. Chociaż wartość domyślna ma wartość true, zaleca się wyłączenie opcji enforceSchema, aby uniknąć nieprawidłowych wyników.
  • inferSchema (domyślna false): automatycznie wywnioskuje schemat wejściowy z danych. Wymaga to dodatkowego przekazania danych.
  • samplingRatio (wartość domyślna 1.0): definiuje ułamek wierszy używanych do wnioskowania schematu.
  • ignoreLeadingWhiteSpace (domyślna false): flaga wskazująca, czy spacje wiodące z wartości, które są odczytywane, powinny zostać pominięte.
  • ignoreTrailingWhiteSpace (domyślna false): flaga wskazująca, czy należy pominąć końcowe spacje od odczytywanych wartości.
  • nullValue (domyślny pusty ciąg): ustawia ciąg reprezentujący wartość null.
  • emptyValue (domyślny pusty ciąg): ustawia ciąg reprezentujący pustą wartość.
  • nanValue (wartość domyślna NaN): ustawia reprezentację ciągu wartości innej niż liczba.
  • positiveInf (wartość domyślna Inf): ustawia reprezentację ciągu wartości dodatniej nieskończoności.
  • negativeInf (wartość domyślna -Inf): ustawia ciąg reprezentujący ujemną wartość nieskończoności.
  • dateFormat (wartość domyślna yyyy-MM-dd): ustawia ciąg, który wskazuje format daty. Niestandardowe formaty dat są zgodne z formatami we wzorcach daty/godziny. Dotyczy to typu daty.
  • timestampFormat (wartość domyślna yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): ustawia ciąg, który wskazuje format znacznika czasu. Niestandardowe formaty dat są zgodne z formatami we wzorcach daty/godziny. Dotyczy to typu znacznika czasu.
  • maxColumns (domyślna 20480): definiuje stały limit liczby kolumn, które może zawierać rekord.
  • maxCharsPerColumn (wartość domyślna -1): definiuje maksymalną liczbę znaków dozwoloną dla odczytywanej określonej wartości. Domyślnie jest to -1, co oznacza nieograniczoną długość
  • unescapedQuoteHandling (domyślna STOP_AT_DELIMITER): definiuje sposób obsługi wartości przez analizator CSV z nieoznaczonymi cudzysłowami.
    • STOP_AT_CLOSING_QUOTE: Jeśli w danych wejściowych znajdują się niewyspoznane cudzysłowy, zakumuluj znak cudzysłowu i kontynuuj analizowanie wartości jako wartości cudzysłowu cudzysłowu, aż zostanie znaleziony cudzysłów zamykający.
    • BACK_TO_DELIMITER: Jeśli w danych wejściowych znajdują się nieprzeznaczone cudzysłowy, należy rozważyć wartość jako wartość bez cudzysłowu. Spowoduje to, że analizator zgromadzi wszystkie znaki bieżącej wartości analizowanej do momentu znalezienia ogranicznika. Jeśli w wartości nie znaleziono ogranicznika, analizator będzie nadal gromadzić znaki z danych wejściowych do momentu znalezienia ogranicznika lub zakończenia wiersza.
    • STOP_AT_DELIMITER: Jeśli w danych wejściowych znajdują się nieprzeznaczone cudzysłowy, należy rozważyć wartość jako wartość bez cudzysłowu. Spowoduje to, że analizator zgromadzi wszystkie znaki do momentu znalezienia ogranicznika lub zakończenia wiersza w danych wejściowych.
    • STOP_AT_DELIMITER: jeśli w danych wejściowych znajdzie się niewyrównane cudzysłowy, zawartość przeanalizowana dla określonej wartości zostanie pominięta, a wartość ustawiona w nullValue zostanie wygenerowana.
    • RAISE_ERROR: Jeśli w danych wejściowych znajdują się niewyobrażalne cudzysłowy, TextParsingException zwracany jest cudzysłów.
  • mode (ustawienie domyślne PERMISSIVE): umożliwia tryb radzenia sobie z uszkodzonymi rekordami podczas analizowania. Obsługuje następujące tryby bez uwzględniania wielkości liter. Platforma Spark próbuje przeanalizować tylko wymagane kolumny w pliku CSV w obszarze oczyszczania kolumn. W związku z tym uszkodzone rekordy mogą być różne na podstawie wymaganego zestawu pól. To zachowanie może być kontrolowane przez spark.sql.csv.parser.columnPruning.enabled (domyślnie włączone).
    • PERMISSIVE: gdy spełnia uszkodzony rekord, umieszcza źle sformułowany ciąg w polu skonfigurowanym przez columnNameOfCorruptRecordprogram i ustawia źle sformułowane pola na wartość null. Aby zachować uszkodzone rekordy, użytkownik może ustawić pole typu ciągu o nazwie columnNameOfCorruptRecord w schemacie zdefiniowanym przez użytkownika. Jeśli schemat nie ma pola, usuwa uszkodzone rekordy podczas analizowania. Rekord z mniejszą lub większą liczbą tokenów niż schemat nie jest uszkodzonym rekordem w pliku CSV. Jeśli spełnia rekord o mniejszej liczbie tokenów niż długość schematu, ustawia wartość null na dodatkowe pola. Jeśli rekord ma więcej tokenów niż długość schematu, usuwa dodatkowe tokeny.
    • FAILFAST: zgłasza wyjątek, gdy spełnia uszkodzone rekordy.
  • columnNameOfCorruptRecord (wartość domyślna to wartość określona w spark.sql.columnNameOfCorruptRecord): umożliwia zmianę nazwy nowego pola o źle sformułowanym ciągu utworzonym przez tryb PERMISSIVE. Spowoduje to przesłonięcia spark.sql.columnNameOfCorruptRecord.
  • multiLine (ustawienie domyślne false): przeanalizuj jeden rekord, który może obejmować wiele wierszy.
  • locale (ustawienie domyślne en-US): ustawia ustawienia regionalne jako tag języka w formacie IETF BCP 47. Na przykład jest to używane podczas analizowania dat i sygnatur czasowych.
  • lineSep (wartość domyślna obejmuje wszystkie \r, \r\ni \n): definiuje separator linii, który ma być używany do analizowania. Maksymalna długość to 1 znak.
  • pathGlobFilter: opcjonalny wzorzec globu zawierający tylko pliki ze ścieżkami pasującymi do wzorca. Składnia jest następująca org.apache.hadoop.fs.GlobFilter: . Nie zmienia to zachowania detekcji partycji.

Przykłady

> SELECT from_csv('1, 0.8', 'a INT, b DOUBLE');
 {1,0.8}
> SELECT from_csv('26/08/2015', 'time Timestamp', map('timestampFormat', 'dd/MM/yyyy'));
 {"time":2015-08-26 00:00:00}