Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcja
Dotyczy:
Databricks SQL
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łanieschema_of_csvfunkcji. -
options: opcjonalny literał typu MAP<STRING,STRING> 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 schema i options.
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. Separator ten może być jednym lub więcej znakami. -
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ę odcom.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ślnaescapelub\0): ustawia pojedynczy znak używany do ucieczki znaku cudzysłowu. Wartość domyślna to znak ucieczki, gdy znakiescapeiquotesą różne, w przeciwnym razie\0. -
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ślnatrue): 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ącspark.sql.caseSensitive. Chociaż wartość domyślna ma wartość true, zaleca się wyłączenie opcji enforceSchema, aby uniknąć nieprawidłowych wyników. -
inferSchema(domyślnafalse): automatycznie wywnioskuje schemat wejściowy z danych. Wymaga to jednokrotnego dodatkowego przejścia nad danymi. -
samplingRatio(wartość domyślna 1.0): definiuje ułamek wierszy używanych do wnioskowania schematu. -
ignoreLeadingWhiteSpace(domyślnafalse): flaga wskazująca, czy spacje wiodące z wartości, które są odczytywane, powinny zostać pominięte. -
ignoreTrailingWhiteSpace(domyślnafalse): 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ślnaNaN): ustawia reprezentację ciągu wartości innej niż liczba. -
positiveInf(wartość domyślnaInf): ustawia tekstową reprezentację wartości dodatniej nieskończoności. -
negativeInf(wartość domyślna-Inf): ustawia ciąg reprezentujący ujemną wartość nieskończoności. -
dateFormat(wartość domyślnayyyy-MM-dd): ustawia ciąg, który wskazuje format daty. Niestandardowe formaty dat są zgodne z formatami we wzorcach Datetime patterns. Dotyczy to typu daty. -
timestampFormat(wartość domyślnayyyy-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 Datetime patterns. Dotyczy to typu znacznika czasu. -
maxColumns(domyślna20480): 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ślnaSTOP_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ę niepoprawnie wyrażone cudzysłowy, zakumuluj znak cudzysłowu i kontynuuj analizowanie wartości jako wartości w cudzysłowie, 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 znajdą się niezabezpieczone cudzysłowy, zawartość analizowana dla ustalonej wartości zostanie pominięta, a wartość ustawiona wnullValuezostanie wygenerowana. -
RAISE_ERROR: Jeśli w danych wejściowych znajdują się niezabezpieczone cudzysłowy, zostanie zgłoszonyTextParsingException.
-
-
mode(ustawienie domyślnePERMISSIVE): 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 przezspark.sql.csv.parser.columnPruning.enabled(domyślnie włączone).-
PERMISSIVE: gdy natrafia na uszkodzony rekord, umieszcza źle sformułowany ciąg w polu skonfigurowanym przezcolumnNameOfCorruptRecord, 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 napotka uszkodzone rekordy.
-
-
columnNameOfCorruptRecord(wartość domyślna to wartość określona wspark.sql.columnNameOfCorruptRecord): umożliwia zmianę nazwy nowego pola o źle sformułowanym ciągu utworzonym przez trybPERMISSIVE. Spowoduje to przesłonięciespark.sql.columnNameOfCorruptRecord. -
multiLine(ustawienie domyślnefalse): przeanalizuj jeden rekord, który może obejmować wiele wierszy. -
locale(ustawienie domyślneen-US): ustawia lokalizację jako tag językowy 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ącaorg.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}