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 schema options. schema musi być definiowana jako nazwa kolumny rozdzielone przecinkami i pary typów danych, które są używane na przykład 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 (wartość domyślna "): ustawia pojedynczy znak używany do ucieczki wartości cudzysłowu, gdzie separator może być częścią wartości. Jeśli chcesz wyłączyć cudzysłów, musisz ustawić wartość null, ale pusty ciąg. 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.
  • header (wartość domyślna false): używa pierwszego wiersza jako nazw kolumn.
  • enforceSchema (wartość domyślna true): Jeśli ustawiono wartość true, określony lub wnioskowany schemat jest wymuszany do plików ź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 nazwach schematu i kolumn w nagłówkach CSV są sprawdzane przez ich pozycje, biorąc pod uwagę spark.sql.caseSensitive. Chociaż wartość domyślna ma wartość true, zaleca się wyłączenie opcji enforceSchema, aby uniknąć nieprawidłowych wyników.
  • inferSchema (ustawienie domyślne false): automatycznie wnioskuje 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 (ustawienie domyślne false): flaga wskazująca, czy powinny zostać pominięte wiodące białe znaki z odczytanych wartości.
  • ignoreTrailingWhiteSpace (ustawienie domyślne false): flaga wskazująca, czy należy pominąć końcowe odstępy 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 (ustawienie domyślne 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 (wartość domyślna STOP_AT_DELIMITER): definiuje sposób obsługi wartości przez analizator CSV z niewyrównanymi 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 znajdują się niewyspoznane cudzysłowy, zawartość przeanalizowana dla określonej wartości zostanie pominięta i zamiast tego zostanie wygenerowana wartość ustawiona nullValue .
    • 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.columnNameOfCorruptRecordpliku ): umożliwia zmianę nazwy nowego pola o źle sformułowanym ciągu utworzonym przez PERMISSIVE tryb. 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 odnajdywania 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}