Udostępnij za pośrednictwem


read_files funkcja wartości tabeli

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 13.3 LTS i nowsze

Odczytuje pliki w podanej lokalizacji i zwraca dane w postaci tabelarycznej.

Obsługuje odczytywanie formatów plików JSON, CSV, XML, TEXT, BINARYFILE, PARQUET, AVRO i ORC. Umożliwia automatyczne wykrywanie formatu pliku i wnioskowanie o ujednoliconym schemacie we wszystkich plikach.

Składnia

read_files(path [, option_key => option_value ] [...])

Argumenty

Ta funkcja wymaga wywołania nazwanego parametru dla kluczy opcji.

  • path: A STRING z URI lokalizacji danych. Obsługuje odczyt z usługi Azure Data Lake Storage Gen2 ('abfss://'), S3 (s3://) i Google Cloud Storage ('gs://'). Może zawierać globy. Aby uzyskać więcej informacji, zobacz Odnajdywanie plików.
  • option_key: nazwa opcji do skonfigurowania. Należy użyć znaku `backtick` () for options that contain dots (.`).
  • option_value: stałe wyrażenie do ustawienia opcji. Akceptuje literały i funkcje skalarne.

Zwraca

Tabela składająca się z danych z plików odczytanych pod danym path.

Odnajdywanie plików

read_files może odczytywać pojedynczy plik lub odczytywać pliki w podanym katalogu. read_files wyszukuje wszystkie pliki w podanym katalogu rekurencyjnie, chyba że podano element glob, co nakazuje read_files rekurencyjne przeszukanie konkretnego wzorca katalogu.

Filtrowanie katalogów lub plików przy użyciu wzorców glob

Wzorce globu mogą służyć do filtrowania katalogów i plików, jeśli są zawarte w ścieżce.

Wzorzec opis
? Dopasowuje dowolny pojedynczy znak
* Dopasowuje zero lub więcej znaków
[abc] Dopasuje pojedynczy znak z zestawu znaków {a,b,c}.
[a-z] Dopasuje pojedynczy znak z zakresu znaków {a... z}.
[^a] Dopasuje pojedynczy znak, który nie pochodzi z zestawu znaków lub zakresu {a}. Należy pamiętać, że ^ znak musi występować natychmiast po prawej stronie nawiasu otwierającego.
{ab,cd} Dopasuje ciąg z zestawu ciągów {ab, cd}.
{ab,c{de, fh}} Dopasuje ciąg z zestawu ciągów {ab, cde, cfh}.

read_files używa ścisłego wzorca dopasowania Auto Loader podczas odnajdywania plików za pomocą wzorców (globów). Jest to konfigurowane przez useStrictGlobber opcję . Gdy ścisły mechanizm globowania jest wyłączony, końcowe ukośniki (/) są pomijane, a wzorzec gwiazdy, taki jak /*/, może posłużyć do odnajdywania wielu katalogów. Zapoznaj się z poniższymi przykładami, aby zobaczyć różnicę w zachowaniu.

Wzorzec Ścieżka pliku Ścisłe globber wyłączone Włączono ścisły globber
/a/b /a/b/c/file.txt Tak Tak
/a/b /a/b_dir/c/file.txt Nie Nie
/a/b /a/b.txt Nie Nie
/a/b/ /a/b.txt Nie Nie
/a/*/c/ /a/b/c/file.txt Tak Tak
/a/*/c/ /a/b/c/d/file.txt Tak Tak
/a/*/d/ /a/b/c/d/file.txt Tak Nie
/a/*/c/ /a/b/x/y/c/file.txt Tak Nie
/a/*/c /a/b/c_file.txt Tak Nie
/a/*/c/ /a/b/c_file.txt Tak Nie
/a/*/c /a/b/cookie/file.txt Tak Nie
/a/b* /a/b.txt Tak Tak
/a/b* /a/b/file.txt Tak Tak
/a/{0.txt,1.txt} /a/0.txt Tak Tak
/a/*/{0.txt,1.txt} /a/0.txt Nie Nie
/a/b/[cde-h]/i/ /a/b/c/i/file.txt Tak Tak

Wnioskowanie schematu

Schemat plików można jawnie udostępnić read_files za pomocą opcji schema. Gdy schemat nie zostanie podany, read_files próbuje wywnioskować ujednolicony schemat między odnalezionymi plikami, co wymaga odczytania wszystkich plików, chyba że zostanie użyta LIMIT instrukcja. Nawet w przypadku użycia zapytania LIMIT może zostać odczytany większy zestaw plików niż jest to konieczne, aby zwrócić bardziej reprezentatywny schemat danych. Usługa Databricks automatycznie dodaje instrukcję LIMIT dla zapytań SELECT w notesach i edytorze SQL, jeśli użytkownik jej nie podał.

Opcja schemaHints może być użyta do naprawienia podzbiorów wywnioskowanego schematu. Aby uzyskać więcej informacji, zapoznaj się z Zastępowanie inferencji schematu za pomocą wskazówek schematu.

Element A rescuedDataColumn jest domyślnie udostępniany do ratowania wszystkich danych, które nie są zgodne ze schematem. Aby uzyskać więcej informacji, zobacz Co to jest uratowana kolumna danych? Możesz usunąć tę rescuedDataColumn opcję, ustawiając opcję schemaEvolutionMode => 'none'.

Wnioskowanie schematu partycji

read_files może również wywnioskować kolumny partycjonowania, jeśli pliki są przechowywane w katalogach podzielonych na partycje w stylu Hive'a, czyli /column_name=column_value/. Jeśli podano schema, odnalezione kolumny partycji używają typów podanych w schema. Jeśli kolumny partycji nie są częścią podanej wartości schema, wnioskowane kolumny partycji są ignorowane.

Jeśli kolumna istnieje zarówno w schemacie partycji, jak i w kolumnach danych, wartość odczytywana z wartości partycji jest używana zamiast wartości danych. Jeśli chcesz zignorować wartości pochodzące z katalogu i użyć kolumny danych, możesz podać listę kolumn partycji na liście rozdzielanej przecinkami z opcją partitionColumns .

Opcję partitionColumns można również użyć, aby poinstruować read_files które odnalezione kolumny mają zostać uwzględnione w końcowym schemacie wnioskowanym. Podanie pustego ciągu ignoruje wszystkie kolumny partycji.

schemaHints Można również podać opcję zastąpienia wnioskowanego schematu dla kolumny partycji.

Formaty TEXT i BINARYFILE mają stały schemat, ale read_files także próbuje wywnioskować partycjonowanie dla tych formatów, gdy jest to możliwe.

Użycie w tabelach przesyłania strumieniowego

read_files można używać w tabelach strumieniowych do wczytywania plików do Delta Lake. read_files korzysta z modułu automatycznego ładowania w przypadku użycia w zapytaniu tabeli przesyłania strumieniowego. Należy użyć słowa kluczowego STREAM wraz z read_files. Aby uzyskać więcej informacji, zobacz Co to jest moduł automatycznego ładowania?

W przypadku użycia w zapytaniu read_files przesyłanym strumieniowo używa próbki danych do wnioskowania schematu i może rozwijać schemat w miarę przetwarzania większej ilości danych. Aby uzyskać więcej informacji, zobacz Konfigurowanie wnioskowania schematu i ewolucji w module automatycznego ładowania .

Opcje

Opcje podstawowe

Opcja
format
Typ: String
Format pliku danych w ścieżce źródłowej. Automatycznie wywnioskowane, jeśli nie podano. Dozwolone wartości obejmują:

Wartość domyślna: Brak
inferColumnTypes
Typ: Boolean
Czy wywnioskować dokładne typy kolumn podczas korzystania z wnioskowania schematu. Domyślnie kolumny są wnioskowane podczas wnioskowania zestawów danych JSON i CSV. Aby uzyskać więcej informacji, zobacz wnioskowanie schematu. Należy pamiętać, że jest to przeciwieństwo domyślnego ustawienia Auto Loader.
Wartość domyślna: true
partitionColumns
Typ: String
Rozdzielona przecinkami lista kolumn partycji stylu hive, które mają być wywnioskowane z struktury katalogów plików. Kolumny partycji w stylu Hive to pary klucz-wartość połączone znakiem równości.
<base-path>/a=x/b=1/c=y/file.format. W tym przykładzie kolumny partycji to a, bi c. Domyślnie te kolumny zostaną automatycznie dodane do schematu, jeśli używasz wnioskowania schematu i udostępniasz element <base-path> do ładowania danych. Jeśli podasz schemat, moduł automatycznego ładowania oczekuje, że te kolumny zostaną uwzględnione w schemacie. Jeśli nie chcesz, aby te kolumny były częścią schematu, możesz określić "" , aby ignorować te kolumny. Ponadto możesz użyć tej opcji, jeśli chcesz, aby kolumny mogły być wywnioskowane ścieżką pliku w złożonych strukturach katalogów, podobnie jak w poniższym przykładzie:
<base-path>/year=2022/week=1/file1.csv
<base-path>/year=2022/month=2/day=3/file2.csv
<base-path>/year=2022/month=2/day=4/file3.csv
Określanie cloudFiles.partitionColumns jako year,month,day zwróci wartość
year=2022 dla file1.csvparametru , ale kolumny month i day będą mieć wartość null.
month i day zostaną poprawnie przeanalizowane dla file2.csv i file3.csv.
Wartość domyślna: Brak
schemaHints
Typ: String
Informacje o schemacie, które dostarczasz do narzędzia automatycznego ładowania podczas wnioskowania schematu. Aby uzyskać więcej szczegółów, zobacz wskazówki dotyczące schematu.
Wartość domyślna: Brak
useStrictGlobber
Typ: Boolean
Czy używać ścisłego globberu zgodnego z domyślnym zachowaniem globbingu innych źródeł plików na platformie Apache Spark. Aby uzyskać więcej informacji, zobacz Typowe wzorce ładowania danych. Dostępne w środowisku Databricks Runtime 12.2 LTS lub nowszym. Należy pamiętać, że jest to odwrotność domyślnego ustawienia w Auto Loaderze.
Wartość domyślna: true

Opcje ogólne

Poniższe opcje mają zastosowanie do wszystkich formatów plików.

Opcja
ignoreCorruptFiles
Typ: Boolean
Czy ignorować uszkodzone pliki. Jeśli ma wartość true, zadania platformy Spark będą nadal działać po napotkaniu uszkodzonych plików, a zawartość, która została odczytowana, będzie nadal zwracana. Obserwowalny jako numSkippedCorruptFiles w
operationMetrics kolumna historii Delta Lake. Dostępne w środowisku Databricks Runtime 11.3 LTS i nowszym.
Wartość domyślna: false
ignoreMissingFiles
Typ: Boolean
Czy ignorować brakujące pliki. Jeśli to prawda, zadania platformy Spark będą nadal działać po napotkaniu brakujących plików, a zawartość, która została odczytowana, będzie nadal zwracana. Dostępne w środowisku Databricks Runtime 11.3 LTS i nowszym.
Wartość domyślna: false dla modułu ładującego automatycznego, true dla COPY INTO (starsza wersja)
modifiedAfter
Typ: Timestamp String, na przykład 2021-01-01 00:00:00.000000 UTC+0
Opcjonalny znacznik czasu do przetwarzania plików, których znaczniki czasowe modyfikacji są późniejsze niż podany znacznik czasu.
Wartość domyślna: Brak
modifiedBefore
Typ: Timestamp String, na przykład 2021-01-01 00:00:00.000000 UTC+0
Opcjonalny znacznik czasu, aby przetwarzać pliki, które mają sygnaturę czasową modyfikacji wcześniejszą niż podany znacznik czasu.
Wartość domyślna: Brak
pathGlobFilter lub fileNamePattern
Typ: String
Potencjalny wzorzec globu umożliwiający wybór plików. Odpowiednik
PATTERN w COPY INTO (wersja archiwalna). fileNamePattern można użyć w pliku read_files.
Wartość domyślna: Brak
recursiveFileLookup
Typ: Boolean
Ta opcja przeszukuje zagnieżdżone katalogi, nawet jeśli ich nazwy nie pasują do schematu nazewnictwa partycji, takiego jak date=2019-07-01.
Wartość domyślna: false

JSON Opcje

Opcja
allowBackslashEscapingAnyCharacter
Typ: Boolean
Czy zezwolić na ukośniki odwrotne do zastępowania dowolnego znaku, który po nim następuje. Jeśli nie jest włączona, tylko znaki, które są jawnie wymienione przez specyfikację JSON, mogą zostać uniknione.
Wartość domyślna: false
allowComments
Typ: Boolean
Czy zezwalać na używanie komentarzy w stylu Java, C i C++ ('/', '*', i '//' odmian) w analizowanej zawartości, czy nie.
Wartość domyślna: false
allowNonNumericNumbers
Typ: Boolean
Określa, czy zezwalać na zestaw tokenów innych niż liczba (NaN) jako wartości liczb zmiennoprzecinkowych prawnych.
Wartość domyślna: true
allowNumericLeadingZeros
Typ: Boolean
Czy pozwolić liczbom całkowitym zaczynać się od dodatkowych (ignorowanych) zer (na przykład 000001).
Wartość domyślna: false
allowSingleQuotes
Typ: Boolean
Czy zezwalać na używanie pojedynczych cudzysłowów (apostrof, znak '\') do cytowania ciągów (nazw i wartości ciągu).
Wartość domyślna: true
allowUnquotedControlChars
Typ: Boolean
Czy zezwolić ciągom JSON na zawieranie nieznakowanych znaków kontrolnych (znaków ASCII o wartości mniejszej niż 32, w tym znaki tabulatora i nowej linii), czy nie.
Wartość domyślna: false
allowUnquotedFieldNames
Typ: Boolean
Czy zezwalać na używanie niekwotowanych nazw pól (które są dozwolone przez język JavaScript, ale nie przez specyfikację JSON).
Wartość domyślna: false
badRecordsPath
Typ: String
Ścieżka do przechowywania plików do rejestrowania informacji o nieprawidłowych rekordach JSON.
Wartość domyślna: Brak
columnNameOfCorruptRecord
Typ: String
Kolumna do przechowywania rekordów, które są źle sformułowane i nie można ich przeanalizować. mode Jeśli dla analizowania ustawiono wartość DROPMALFORMED, ta kolumna będzie pusta.
Wartość domyślna: _corrupt_record
dateFormat
Typ: String
Format analizowania ciągów dat.
Wartość domyślna: yyyy-MM-dd
dropFieldIfAllNull
Typ: Boolean
Czy ignorować kolumny wszystkich wartości null, czy puste tablice i struktury podczas wnioskowania schematu.
Wartość domyślna: false
encoding lub charset
Typ: String
Nazwa kodowania plików JSON. Zobacz java.nio.charset.Charset listę opcji. Nie można użyć polecenia UTF-16 i UTF-32 gdy multiline ma wartość true.
Wartość domyślna: UTF-8
inferTimestamp
Typ: Boolean
Czy należy spróbować wywnioskować ciągi znacznika czasu jako TimestampType? Kiedy jest ustawione
truewnioskowanie schematu może trwać znacznie dłużej. Trzeba włączyć cloudFiles.inferColumnTypes, aby używać z modułem Auto Loader.
Wartość domyślna: false
lineSep
Typ: String
Ciąg między dwoma kolejnymi rekordami JSON.
Wartość domyślna: Brak, która obejmuje \r, \r\n i \n.
locale
Typ: String
Identyfikator java.util.Locale . Wpływa na domyślną datę, znacznik czasu i analizowanie dziesiętne w formacie JSON.
Wartość domyślna: US
mode
Typ: String
Tryb analizatora do obsługi nieprawidłowo sformułowanych rekordów. Jeden z 'PERMISSIVE'
'DROPMALFORMED'lub 'FAILFAST'.
Wartość domyślna: PERMISSIVE
multiLine
Typ: Boolean
Określa, czy rekordy JSON obejmują wiele wierszy.
Wartość domyślna: false
prefersDecimal
Typ: Boolean
Próbuje wywnioskować ciągi jako DecimalType zamiast typu zmiennoprzecinkowego lub podwójnego, jeśli jest to możliwe. Należy również włączyć wnioskowanie schematu, albo użyć go
inferSchema lub cloudFiles.inferColumnTypes z automatycznym ładowaniem.
Wartość domyślna: false
primitivesAsString
Typ: Boolean
Czy należy wnioskować, że typy pierwotne, takie jak liczby i wartości logiczne, są StringType?
Wartość domyślna: false
readerCaseSensitive
Typ: Boolean
Określa zachowanie wrażliwości na wielkość liter po włączeniu rescuedDataColumn. Jeśli to prawda, należy uratować kolumny danych, których nazwy różnią się wielkością liter od schematu; w przeciwnym razie odczytaj dane w sposób niewrażliwy na wielkość liter. Dostępne w środowisku Databricks Runtime
13.3 i nowsze.
Wartość domyślna: true
rescuedDataColumn
Typ: String
Czy zebrać wszystkie dane, których nie można przeanalizować z powodu niezgodności typu danych lub niezgodności schematu (w tym wielkości liter kolumn) do oddzielnej kolumny. Ta kolumna jest domyślnie dołączana podczas korzystania z modułu automatycznego ładowania. Aby uzyskać więcej informacji, zobacz Co to jest uratowana kolumna danych?.
COPY INTO (starsza wersja) nie obsługuje uratowanych kolumn danych, ponieważ nie można ręcznie ustawić schematu przy użyciu COPY INTO. Databricks zaleca używanie Auto Loader w przypadku większości scenariuszy przyjmowania danych.
Wartość domyślna: Brak
singleVariantColumn
Typ: String
Zastanów się, czy pozyskać cały dokument JSON, przeanalizowany w jednej kolumnie wariantu z podanym ciągiem jako nazwą kolumny. W przypadku wyłączenia pola JSON zostaną zapisane w ich własnych kolumnach.
Wartość domyślna: Brak
timestampFormat
Typ: String
Format analizowania ciągów znacznika czasu.
Wartość domyślna: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone
Typ: String
Element java.time.ZoneId do użycia podczas analizowania sygnatur czasowych i dat.
Wartość domyślna: Brak

CSV Opcje

Opcja
badRecordsPath
Typ: String
Ścieżka do przechowywania plików do rejestrowania informacji o nieprawidłowych rekordach CSV.
Wartość domyślna: Brak
charToEscapeQuoteEscaping
Typ: Char
Znak używany do ucieczki znaku używanego do ucieczki cudzysłowów. Na przykład dla następującego rekordu: : [ " a\\", b ]
  • Jeśli znak ucieczki dla '\' jest niezdefiniowany, rekord nie zostanie przeanalizowany. Analizator odczytuje znaki: [a],[\],["],[,],[ ],[b] i zgłasza błąd, ponieważ nie może znaleźć cudzysłowu zamykającego.
  • Jeśli znak ucieczki '\' jest zdefiniowany jako '\', rekord zostanie odczytany z dwoma wartościami: [a\] i [b].

Wartość domyślna: '\0'
columnNameOfCorruptRecord
Obsługiwane dla funkcji Auto Loader. Nie jest obsługiwane w przypadku COPY INTO (wersja legacy).
Typ: String
Kolumna do przechowywania rekordów, które są źle sformułowane i nie można ich przeanalizować. mode Jeśli dla analizowania ustawiono wartość DROPMALFORMED, ta kolumna będzie pusta.
Wartość domyślna: _corrupt_record
comment
Typ: Char
Definiuje znak, który reprezentuje komentarz linii, gdy znajduje się na początku wiersza tekstu. Użyj polecenia '\0' , aby wyłączyć pomijanie komentarza.
Wartość domyślna: '\u0000'
dateFormat
Typ: String
Format analizowania ciągów dat.
Wartość domyślna: yyyy-MM-dd
emptyValue
Typ: String
Ciągowa reprezentacja wartości pustej.
Wartość domyślna: ""
encoding lub charset
Typ: String
Nazwa kodowania plików CSV. Zobacz java.nio.charset.Charset listę opcji. UTF-16 i UTF-32 nie mogą być używane, gdy multiline to true.
Wartość domyślna: UTF-8
enforceSchema
Typ: Boolean
Czy wymuszać stosowanie określonego lub wnioskowanego schematu na pliki CSV. Jeśli opcja jest włączona, nagłówki plików CSV są ignorowane. Ta opcja jest domyślnie ignorowana podczas używania automatycznego modułu ładującego do ratowania danych i zezwalania na ewolucję schematu.
Wartość domyślna: true
escape
Typ: Char
Znak ucieczki do użycia podczas analizowania danych.
Wartość domyślna: '\'
header
Typ: Boolean
Określa, czy pliki CSV zawierają nagłówek. Automatyczny moduł ładujący zakłada, że pliki mają nagłówki podczas wnioskowania schematu.
Wartość domyślna: false
ignoreLeadingWhiteSpace
Typ: Boolean
Czy ignorować wiodące odstępy dla każdej przeanalizowanej wartości.
Wartość domyślna: false
ignoreTrailingWhiteSpace
Typ: Boolean
Czy ignorować końcowe odstępy dla każdej analizowanej wartości.
Wartość domyślna: false
inferSchema
Typ: Boolean
Czy wywnioskować typy danych analizowanych rekordów CSV, czy przyjąć, że wszystkie kolumny mają wartość StringType. Wymaga dodatkowego przetworzenia danych, jeśli parametr jest ustawiony na true. W przypadku Auto Loader użyj cloudFiles.inferColumnTypes zamiast tego.
Wartość domyślna: false
lineSep
Typ: String
Ciąg między dwoma kolejnymi rekordami CSV.
Wartość domyślna: Brak, która obejmuje \r, \r\n i \n.
locale
Typ: String
Identyfikator java.util.Locale. Wpływa na sposób domyślnego interpretowania dat, znaczników czasu oraz liczb dziesiętnych w pliku CSV.
Wartość domyślna: US
maxCharsPerColumn
Typ: Int
Maksymalna liczba znaków oczekiwana od wartości do przeanalizowania. Może służyć do unikania błędów pamięci. Wartość domyślna to -1, co oznacza brak ograniczeń.
Wartość domyślna: -1
maxColumns
Typ: Int
Stały limit liczby kolumn, które może mieć rekord.
Wartość domyślna: 20480
mergeSchema
Typ: Boolean
Czy należy wywnioskować schemat dla wielu plików i scalić schematy każdego pliku. Domyślnie włączono funkcję automatycznego ładowania podczas wnioskowania schematu.
Wartość domyślna: false
mode
Typ: String
Tryb analizatora dotyczący obsługi uszkodzonych rekordów. Jeden z 'PERMISSIVE'
'DROPMALFORMED', i 'FAILFAST'.
Wartość domyślna: PERMISSIVE
multiLine
Typ: Boolean
Określa, czy rekordy CSV obejmują wiele wierszy.
Wartość domyślna: false
nanValue
Typ: String
Reprezentacja ciągu dla wartości będącej nie liczbą podczas analizowania kolumn FloatType i DoubleType.
Wartość domyślna: "NaN"
negativeInf
Typ: String
Ciąg reprezentujący ujemną nieskończoność podczas analizowania kolumn FloatType lub DoubleType.
Wartość domyślna: "-Inf"
nullValue
Typ: String
Reprezentacja wartości null jako stringu.
Wartość domyślna: ""
parserCaseSensitive (przestarzałe)
Typ: Boolean
Podczas odczytywania plików, czy należy wyrównać kolumny zadeklarowane w nagłówku z uwzględnieniem wielkości liter w schemacie. Domyślnie true jest to ustawienie dla automatycznego modułu ładowania. Kolumny, które różnią się wielkością liter, zostaną zarchiwizowane w rescuedDataColumn, jeśli opcja ta jest włączona. Ta opcja została uznana za przestarzałą na rzecz readerCaseSensitive.
Wartość domyślna: false
positiveInf
Typ: String
Reprezentacja łańcucha znaków dla dodatniej nieskończoności przy analizowaniu kolumn FloatType lub DoubleType.
Wartość domyślna: "Inf"
preferDate
Typ: Boolean
Próbuje interpretować ciągi znaków jako daty, zamiast traktować je jako znaczniki czasu, gdy jest to możliwe. Należy również użyć wnioskowania schematu, włączając inferSchema lub używając polecenia
cloudFiles.inferColumnTypes z automatycznym modułem ładującym.
Wartość domyślna: true
quote
Typ: Char
Znak używany do unikania wartości, w których ogranicznik pola jest częścią wartości.
Wartość domyślna: "
readerCaseSensitive
Typ: Boolean
Określa zachowanie wrażliwości na wielkość liter po włączeniu rescuedDataColumn. Jeśli to prawda, należy uratować kolumny danych, których nazwy różnią się wielkością liter od schematu; w przeciwnym razie odczytaj dane w sposób niewrażliwy na wielkość liter.
Wartość domyślna: true
rescuedDataColumn
Typ: String
Czy należy zebrać wszystkie dane, których nie można przeanalizować z powodu niezgodności typu danych oraz niezgodności schematu (w tym różnic w wielkości liter kolumn) do osobnej kolumny. Ta kolumna jest domyślnie dołączana podczas korzystania z modułu automatycznego ładowania. Aby uzyskać więcej informacji, zobacz Co to jest uratowana kolumna danych?.
COPY INTO (starsza wersja) nie obsługuje uratowanych kolumn danych, ponieważ nie można ręcznie ustawić schematu przy użyciu COPY INTO. Databricks zaleca używanie Auto Loader w przypadku większości scenariuszy przyjmowania danych.
Wartość domyślna: Brak
sep lub delimiter
Typ: String
Ciąg separatorów między kolumnami.
Wartość domyślna: ","
skipRows
Typ: Int
Liczba wierszy z początku pliku CSV, które powinny być ignorowane (w tym z komentarzami i pustymi wierszami). Jeśli header ma wartość true, nagłówek będzie pierwszym niepominionym i niezawierającym komentarza wierszem.
Wartość domyślna: 0
timestampFormat
Typ: String
Format analizowania ciągów znacznika czasu.
Wartość domyślna: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone
Typ: String
Element java.time.ZoneId do użycia podczas analizowania sygnatur czasowych i dat.
Wartość domyślna: Brak
unescapedQuoteHandling
Typ: String
Strategia obsługi nieskosowanych cudzysłowów. Dozwolone opcje:
  • STOP_AT_CLOSING_QUOTE: Jeśli w danych wejściowych znajdują się niezamienione cudzysłowy, zbierz 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 zdefiniowanego przez sep element . 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 aż do momentu, gdy w danych wejściowych zostanie znaleziony ogranicznik zdefiniowany przez sep, lub napotka zakończenie wiersza.
  • SKIP_VALUE: Jeśli w danych wejściowych znajdzie się niezakodowane cudzysłowy, zawartość przeanalizowana dla danej wartości zostanie pominięta (aż do znalezienia następnego ogranicznika), a wartość ustawiona w nullValue zostanie wygenerowana.
  • RAISE_ERROR: jeśli w danych wejściowych znajdują się nieoznaczone cudzysłowy, a
    TextParsingException zostanie wyrzucony.

Wartość domyślna: STOP_AT_DELIMITER

XML Opcje

Opcja opis Scope
rowTag Tag wiersza plików XML do traktowania jako wiersz. W przykładowym pliku XML <books> <book><book>...<books>odpowiednia wartość to book. Ta opcja jest wymagana. czytać
samplingRatio Definiuje ułamek wierszy używanych do wnioskowania schematu. Wbudowane funkcje XML ignorują tę opcję. Wartość domyślna: 1.0. czytać
excludeAttribute Czy wykluczać atrybuty w elementach. Wartość domyślna: false. czytać
mode Tryb radzenia sobie z uszkodzonymi rekordami podczas analizowania.
PERMISSIVE: W przypadku uszkodzonych rekordów źle sformułowany ciąg jest umieszczany w polu skonfigurowanym przez columnNameOfCorruptRecord, a źle sformułowane pola są ustawiane na null. Aby zachować uszkodzone rekordy, można ustawić string pole typu o nazwie columnNameOfCorruptRecord w schemacie zdefiniowanym przez użytkownika. Jeśli schemat nie ma pola, uszkodzone rekordy są porzucane podczas analizowania. Podczas wnioskowania schematu analizator niejawnie dodaje columnNameOfCorruptRecord pole w schemacie wyjściowym.
DROPMALFORMED: ignoruje uszkodzone rekordy. Ten tryb nie jest obsługiwany dla wbudowanych funkcji XML.
FAILFAST: zgłasza wyjątek, gdy analizator napotyka uszkodzone rekordy.
czytać
inferSchema Jeśli true, próbuje wywnioskować odpowiedni typ dla każdej wynikowej kolumny DataFrame. Jeśli false, wszystkie wynikowe kolumny są typu string. Wartość domyślna:
true. Wbudowane funkcje XML ignorują tę opcję.
czytać
columnNameOfCorruptRecord Umożliwia zmianę nazwy nowego pola zawierającego źle sformułowany ciąg utworzony przez
PERMISSIVE tryb. Wartość domyślna: spark.sql.columnNameOfCorruptRecord.
czytać
attributePrefix Prefiks atrybutów do odróżnienia atrybutów od elementów. Będzie to prefiks nazw pól. Wartość domyślna to _. Może być pusty do odczytywania kodu XML, ale nie do zapisu. odczyt, zapis
valueTag Tag używany dla danych znaków w elementach, które mają również atrybuty lub elementy podrzędne. Użytkownik może określić pole valueTag w schemacie, lub zostanie ono dodane automatycznie podczas wnioskowania schematu, gdy dane znakowe są obecne w elementach posiadających inne elementy lub atrybuty. Domyślnie: _VALUE odczyt,zapis
encoding Do odczytu dekoduje pliki XML według danego typu kodowania. Na potrzeby pisania określa kodowanie (charset) zapisanych plików XML. Wbudowane funkcje XML ignorują tę opcję. Wartość domyślna: UTF-8. odczyt, zapis
ignoreSurroundingSpaces Określa, czy białe spacje otaczające odczytywane wartości powinny być pomijane. Wartość domyślna: true. Dane składające się wyłącznie ze znaków odstępu są ignorowane. czytać
rowValidationXSDPath Ścieżka do opcjonalnego pliku XSD używanego do sprawdzania poprawności kodu XML dla każdego wiersza osobno. Wiersze, które nie przeszły walidacji, są traktowane jak błędy parsowania, jak powyżej. XSD w żaden inny sposób nie wpływa na podany lub wywnioskowany schemat. czytać
ignoreNamespace Jeśli true, prefiksy przestrzeni nazw dla elementów i atrybutów XML są ignorowane. Tagi <abc:author> i <def:author>, na przykład są traktowane tak, jakby oba były tylko <author>. Przestrzenie nazw nie mogą być ignorowane w elemencie rowTag, tylko jego podrzędne elementy do odczytu. Analizowanie kodu XML nie uwzględnia przestrzeni nazw, nawet jeśli false. Wartość domyślna: false. czytać
timestampFormat Niestandardowy format ciągu znacznika czasu zgodny ze wzorcem daty/godziny. Dotyczy to typu timestamp. Wartość domyślna: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]. odczyt, zapis
timestampNTZFormat Ciąg formatu niestandardowego dla znacznika czasu bez strefy czasowej, który jest zgodny z formatem wzorca daty i godziny. Dotyczy to typu TimestampNTZType. Wartość domyślna:
yyyy-MM-dd'T'HH:mm:ss[.SSS]
odczyt, zapis
dateFormat Niestandardowy ciąg formatu daty zgodny ze wzorcem formatu daty/godziny. Dotyczy to typu daty. Wartość domyślna: yyyy-MM-dd. odczyt, zapis
locale Ustawia lokalizację jako tag języka w formacie IETF BCP 47. Na przykład locale jest używany podczas analizowania dat i sygnatur czasowych. Wartość domyślna: en-US. czytać
rootTag Główny tag plików XML. Na przykład w pliku <books> <book><book>...</books>odpowiednią wartością jest books. Możesz uwzględnić podstawowe atrybuty, określając wartość, na przykład books foo="bar". Wartość domyślna: ROWS. pisać
declaration Zawartość deklaracji XML do zapisu na początku każdego wyjściowego pliku XML, przed rootTag. Na przykład wartość foo powoduje zapisanie <?xml foo?>. Ustaw wartość na pusty ciąg, aby pominąć. Domyślnie: version="1.0"
encoding="UTF-8" standalone="yes".
pisać
arrayElementName Nazwa elementu XML, który otacza każdy element kolumny z wartością tablicy podczas pisania. Wartość domyślna: item. pisać
nullValue Ustawia łańcuch znaków reprezentujący wartość null. Wartość domyślna: ciąg null. Gdy jest null, analizator nie zapisuje atrybutów i elementów dla pól. odczyt, zapis
compression Kod kompresji używany podczas zapisywania w pliku. Może to być jedna ze znanych skróconych nazw bez uwzględniania wielkości liter (none, bzip2, , gziplz4snappy, i
deflate). Wbudowane funkcje XML ignorują tę opcję. Wartość domyślna: none.
pisać
validateName Jeśli wartość true, zgłasza błąd podczas niepowodzenia sprawdzania poprawności nazwy elementu XML. Na przykład nazwy pól SQL mogą zawierać spacje, ale nazwy elementów XML nie mogą. Wartość domyślna:
true.
pisać
readerCaseSensitive Określa zachowanie rozróżniania wielkości liter po włączeniu funkcji rescuedDataColumn. Jeśli to prawda, należy uratować kolumny danych, których nazwy różnią się wielkością liter od schematu; w przeciwnym razie odczytaj dane w sposób niewrażliwy na wielkość liter. Wartość domyślna: true. czytać
rescuedDataColumn Czy zebrać wszystkie dane, których nie można przetworzyć z powodu niezgodności typu danych i niezgodności schematu (w tym różnic w wielkości liter w nazwach kolumn), do oddzielnej kolumny. Ta kolumna jest domyślnie dołączana podczas korzystania z modułu automatycznego ładowania. Aby uzyskać więcej informacji, zobacz Co to jest uratowana kolumna danych?.
COPY INTO (starsza wersja) nie obsługuje uratowanych kolumn danych, ponieważ nie można ręcznie ustawić schematu przy użyciu COPY INTO. Databricks zaleca używanie Auto Loader w przypadku większości scenariuszy przyjmowania danych.
Ustawienie domyślne: Brak.
czytać

PARQUET Opcje

Opcja
datetimeRebaseMode
Typ: String
Steruje przestawieniem wartości DATE i TIMESTAMP między kalendarzami juliańskim a proleptycznym gregoriańskim. Dozwolone wartości: EXCEPTION, LEGACYi
CORRECTED.
Wartość domyślna: LEGACY
int96RebaseMode
Typ: String
Steruje przebazowaniem wartości znacznika czasu INT96 między kalendarzami Julian i Proleptic Gregorian. Dozwolone wartości: EXCEPTION, LEGACYi
CORRECTED.
Wartość domyślna: LEGACY
mergeSchema
Typ: Boolean
Czy należy wywnioskować schemat dla wielu plików i scalić schematy każdego pliku.
Wartość domyślna: false
readerCaseSensitive
Typ: Boolean
Określa zachowanie wrażliwości na wielkość liter po włączeniu rescuedDataColumn. Jeśli to prawda, należy uratować kolumny danych, których nazwy różnią się wielkością liter od schematu; w przeciwnym razie odczytaj dane w sposób niewrażliwy na wielkość liter.
Wartość domyślna: true
rescuedDataColumn
Typ: String
Czy zebrać wszystkie dane, których nie można przeanalizować z powodu niezgodności typu danych i niezgodności schematu (w tym wielkości liter kolumn) do oddzielnej kolumny. Ta kolumna jest domyślnie dołączana podczas korzystania z modułu automatycznego ładowania. Aby uzyskać więcej informacji, zobacz Co to jest uratowana kolumna danych?.
COPY INTO (starsza wersja) nie obsługuje uratowanych kolumn danych, ponieważ nie można ręcznie ustawić schematu przy użyciu COPY INTO. Databricks zaleca używanie Auto Loader w przypadku większości scenariuszy przyjmowania danych.
Wartość domyślna: Brak

AVRO Opcje

Opcja
avroSchema
Typ: String
Opcjonalny schemat dostarczony przez użytkownika w formacie Avro. Podczas odczytywania avro tę opcję można ustawić na rozwinięty schemat, który jest zgodny, ale różni się od rzeczywistego schematu Avro. Schemat deserializacji będzie zgodny ze schematem ewoluowanym. Jeśli na przykład ustawisz rozwinięty schemat zawierający jedną dodatkową kolumnę z wartością domyślną, wynik odczytu będzie również zawierać nową kolumnę.
Wartość domyślna: Brak
datetimeRebaseMode
Typ: String
Określa ponowne łączenie wartości DATE i TIMESTAMP między kalendarzami Julian i Proleptic Gregorian. Dozwolone wartości: EXCEPTION, LEGACYi
CORRECTED.
Wartość domyślna: LEGACY
mergeSchema
Typ: Boolean
Czy należy wywnioskować schemat dla wielu plików i scalić schematy każdego pliku.
mergeSchema dla Avro nie łagodzi ograniczeń związanych z typami danych.
Wartość domyślna: false
readerCaseSensitive
Typ: Boolean
Określa zachowanie wrażliwości na wielkość liter po włączeniu rescuedDataColumn. Jeśli to prawda, należy uratować kolumny danych, których nazwy różnią się wielkością liter od schematu; w przeciwnym razie odczytaj dane w sposób niewrażliwy na wielkość liter.
Wartość domyślna: true
rescuedDataColumn
Typ: String
Czy zebrać wszystkie dane, których nie da się przeanalizować ze względu na niezgodność typu danych i niezgodność schematu (w tym pisowni kolumn) do oddzielnej kolumny. Ta kolumna jest domyślnie dołączana podczas korzystania z modułu automatycznego ładowania.
COPY INTO (starsza wersja) nie obsługuje uratowanych kolumn danych, ponieważ nie można ręcznie ustawić schematu przy użyciu COPY INTO. Databricks zaleca używanie Auto Loader w przypadku większości scenariuszy przyjmowania danych.
Aby uzyskać więcej informacji, zobacz Co to jest uratowana kolumna danych?.
Wartość domyślna: Brak

BINARYFILE Opcje

Pliki binarne nie mają żadnych dodatkowych opcji konfiguracji.

TEXT Opcje

Opcja
encoding
Typ: String
Nazwa kodowania plików TEXT. Zobacz java.nio.charset.Charset listę opcji.
Wartość domyślna: UTF-8
lineSep
Typ: String
Ciąg między dwoma kolejnymi rekordami tekstowymi.
Wartość domyślna: Brak, co obejmuje \r, \r\n i \n
wholeText
Typ: Boolean
Czy odczytywać plik jako pojedynczy rekord.
Wartość domyślna: false

ORC Opcje

Opcja
mergeSchema
Typ: Boolean
Czy należy wywnioskować schemat dla wielu plików i scalić schematy każdego pliku.
Wartość domyślna: false

Opcje przesyłania strumieniowego

Te opcje mają zastosowanie w przypadku używania read_filestabeli przesyłania strumieniowego lub zapytania przesyłania strumieniowego.

Opcja
allowOverwrites
Typ: Boolean
Czy należy ponownie przetwarzać pliki, które zostały zmodyfikowane po odnalezieniu. Najnowsza dostępna wersja pliku zostanie przetworzona podczas odświeżania, jeśli została zmodyfikowana od czasu rozpoczęcia ostatniego pomyślnie przeprowadzonego zapytania o odświeżenie.
Wartość domyślna: false
includeExistingFiles
Typ: Boolean
Czy dołączyć istniejące pliki do ścieżki wejściowej przetwarzania strumienia, czy tylko przetworzyć nowe pliki przychodzące po wstępnej konfiguracji. Ta opcja jest oceniana tylko wtedy, gdy uruchamiasz strumień po raz pierwszy. Zmiana tej opcji po ponownym uruchomieniu strumienia nie ma żadnego wpływu.
Wartość domyślna: true
maxBytesPerTrigger
Typ: Byte String
Maksymalna liczba nowych bajtów do przetworzenia w każdym wyzwalaczu. Można określić ciąg bajtów, taki jak 10g, aby ograniczyć każdą mikropartię do 10 GB danych. Jest to łagodne maksimum. Jeśli masz pliki o rozmiarze 3 GB, usługa Azure Databricks przetwarza 12 GB w mikrobajtach. W przypadku użycia razem z maxFilesPerTrigger Azure Databricks zużywa do osiągnięcia niższego limitu maxFilesPerTrigger lub maxBytesPerTrigger, w zależności od tego, która z wartości zostanie osiągnięta jako pierwsza.
Uwaga: w przypadku tabel przesyłania strumieniowego utworzonych w bezserwerowych magazynach SQL, ani ta opcja, ani maxFilesPerTrigger nie powinny być ustawione, aby korzystać z dynamicznej kontroli dopuszczeń, która dostosowuje się do rozmiaru obciążenia i bezserwerowych zasobów obliczeniowych, zapewniając optymalną wydajność i szybkość działania.
Wartość domyślna: Brak
maxFilesPerTrigger
Typ: Integer
Maksymalna liczba nowych plików do przetworzenia w każdym wyzwalaczu. W przypadku użycia razem z maxBytesPerTrigger Azure Databricks zużywa do osiągnięcia niższego limitu maxFilesPerTrigger lub maxBytesPerTrigger, w zależności od tego, która z wartości zostanie osiągnięta jako pierwsza.
Uwaga: w przypadku tabel przesyłania strumieniowego utworzonych w bezserwerowych magazynach SQL, ani ta opcja, ani maxBytesPerTrigger nie powinny być ustawione, aby korzystać z dynamicznej kontroli dopuszczeń, która dostosowuje się do rozmiaru obciążenia i bezserwerowych zasobów obliczeniowych, zapewniając optymalną wydajność i szybkość działania.
Wartość domyślna: 1000
schemaEvolutionMode
Typ: String
Tryb ewolucji schematu w miarę odnajdowania nowych kolumn w danych. Domyślnie kolumny są wnioskowane jako ciągi podczas wnioskowania zestawów danych JSON. Zobacz ewolucję schematu, aby uzyskać więcej szczegółów. Ta opcja nie ma zastosowania do plików text i binaryFile.
Wartość domyślna: "addNewColumns" jeśli schemat nie jest podany.
"none" inaczej.
schemaLocation
Typ: String
Lokalizacja do przechowywania wywnioskowanych schematów i kolejnych zmian. Aby uzyskać więcej informacji, zobacz wnioskowanie schematu. Lokalizacja schematu nie jest wymagana w przypadku użycia w zapytaniu tabeli strumieniowej.
Wartość domyślna: Brak

Przykłady

-- Reads the files available in the given path. Auto-detects the format and schema of the data.
> SELECT * FROM read_files('abfss://container@storageAccount.dfs.core.windows.net/base/path');

-- Reads the headerless CSV files in the given path with the provided schema.
> SELECT * FROM read_files(
    's3://bucket/path',
    format => 'csv',
    schema => 'id int, ts timestamp, event string');

-- Infers the schema of CSV files with headers. Because the schema is not provided,
-- the CSV files are assumed to have headers.
> SELECT * FROM read_files(
    's3://bucket/path',
    format => 'csv')

-- Reads files that have a csv suffix.
> SELECT * FROM read_files('s3://bucket/path/*.csv')

-- Reads a single JSON file
> SELECT * FROM read_files(
    'abfss://container@storageAccount.dfs.core.windows.net/path/single.json')

-- Reads JSON files and overrides the data type of the column `id` to integer.
> SELECT * FROM read_files(
    's3://bucket/path',
    format => 'json',
    schemaHints => 'id int')

-- Reads files that have been uploaded or modified yesterday.
> SELECT * FROM read_files(
    'gs://my-bucket/avroData',
    modifiedAfter => date_sub(current_date(), 1),
    modifiedBefore => current_date())

-- Creates a Delta table and stores the source file path as part of the data
> CREATE TABLE my_avro_data
  AS SELECT *, _metadata.file_path
  FROM read_files('gs://my-bucket/avroData')

-- Creates a streaming table that processes files that appear only after the table's creation.
-- The table will most likely be empty (if there's no clock skew) after being first created,
-- and future refreshes will bring new data in.
> CREATE OR REFRESH STREAMING TABLE avro_data
  AS SELECT * FROM STREAM read_files('gs://my-bucket/avroData', includeExistingFiles => false);