read_files
fungsi table-valued
Berlaku untuk: Databricks SQL Databricks Runtime 13.3 LTS ke atas
Membaca file di bawah lokasi yang disediakan dan mengembalikan data dalam bentuk tabular.
JSON
Mendukung format file , , XML
CSV
, TEXT
, BINARYFILE
PARQUET
, , AVRO
, dan ORC
.
Dapat mendeteksi format file secara otomatis dan menyimpulkan skema terpadu di semua file.
Sintaks
read_files(path [, option_key => option_value ] [...])
Argumen
Fungsi ini memerlukan pemanggilan parameter bernama untuk kunci opsi.
path
: ASTRING
dengan URI lokasi data. Mendukung pembacaan dari Azure Data Lake Storage Gen2 ('abfss://'
), S3 (s3://
) dan Google Cloud Storage ('gs://'
). Dapat berisi glob. Lihat Penemuan file untuk detail selengkapnya.option_key
: Nama opsi untuk dikonfigurasi. Anda perlu menggunakan backtick (') untuk opsi yang berisi titik -titik (.
).option_value
: Ekspresi konstanta untuk mengatur opsi ke. Menerima literal dan fungsi skalar.
Mengembalikan
Tabel yang terdiri dari data dari file yang dibaca di bawah yang diberikan path
.
Penemuan file
read_files
dapat membaca file individual atau membaca file di bawah direktori yang disediakan. read_files
menemukan semua file di bawah direktori yang disediakan secara rekursif kecuali glob disediakan, yang menginstruksikan read_files
untuk berulang ke dalam pola direktori tertentu.
Memfilter direktori atau file menggunakan pola glob
Pola Glob dapat digunakan untuk memfilter direktori dan file saat disediakan di jalur.
Pola | Deskripsi |
---|---|
? |
Cocok dengan karakter tunggal apa pun |
* |
Cocok dengan nol atau lebih karakter |
[abc] |
Cocok dengan satu karakter dari kumpulan karakter {a,b,c}. |
[a-z] |
Cocok dengan satu karakter dari rentang karakter {a... z}. |
[^a] |
Cocok dengan satu karakter yang bukan dari kumpulan karakter atau rentang {a}. Perhatikan bahwa ^ karakter harus terjadi segera di sebelah kanan braket pembuka. |
{ab,cd} |
Mencocokkan string dari string set {ab, cd}. |
{ab,c{de, fh}} |
Mencocokkan string dari string set {ab, cde, cfh}. |
read_files
menggunakan globber ketat Auto Loader saat menemukan file dengan glob. Ini dikonfigurasi oleh useStrictGlobber
opsi . Ketika globber ketat dinonaktifkan, garis miring berikutnya (/
) dihilangkan dan pola bintang seperti /*/
dapat diperluas untuk menemukan beberapa direktori. Lihat contoh di bawah ini untuk melihat perbedaan perilaku.
Pola | Jalur file | Globber ketat dinonaktifkan | Globber ketat diaktifkan |
---|---|---|---|
/a/b |
/a/b/c/file.txt |
Ya | Ya |
/a/b |
/a/b_dir/c/file.txt |
Tidak | Tidak |
/a/b |
/a/b.txt |
Tidak | Tidak |
/a/b/ |
/a/b.txt |
Tidak | Tidak |
/a/*/c/ |
/a/b/c/file.txt |
Ya | Ya |
/a/*/c/ |
/a/b/c/d/file.txt |
Ya | Ya |
/a/*/d/ |
/a/b/c/d/file.txt |
Ya | Tidak |
/a/*/c/ |
/a/b/x/y/c/file.txt |
Ya | Tidak |
/a/*/c |
/a/b/c_file.txt |
Ya | Tidak |
/a/*/c/ |
/a/b/c_file.txt |
Ya | Tidak |
/a/*/c |
/a/b/cookie/file.txt |
Ya | Tidak |
/a/b* |
/a/b.txt |
Ya | Ya |
/a/b* |
/a/b/file.txt |
Ya | Ya |
/a/{0.txt,1.txt} |
/a/0.txt |
Ya | Ya |
/a/*/{0.txt,1.txt} |
/a/0.txt |
Tidak | Tidak |
/a/b/[cde-h]/i/ |
/a/b/c/i/file.txt |
Ya | Ya |
Inferensi skema
Skema file dapat secara eksplisit disediakan dengan read_files
schema
opsi . Ketika skema tidak disediakan, read_files
upaya untuk menyimpulkan skema terpadu di seluruh file yang ditemukan, yang mengharuskan membaca semua file kecuali LIMIT
pernyataan digunakan. Bahkan saat menggunakan LIMIT
kueri, sekumpulan file yang lebih besar dari yang diperlukan mungkin dibaca untuk mengembalikan skema data yang lebih representatif. Databricks secara otomatis menambahkan LIMIT
pernyataan untuk SELECT
kueri di notebook dan editor SQL jika pengguna belum menyediakannya.
Opsi schemaHints
dapat digunakan untuk memperbaiki subset skema yang disimpulkan. Lihat Mengambil alih inferensi skema dengan petunjuk skema untuk detail selengkapnya.
rescuedDataColumn
disediakan secara default untuk menyelamatkan data apa pun yang tidak cocok dengan skema. Lihat Apa kolom data yang diselamatkan? untuk detail selengkapnya. Anda dapat menghilangkan rescuedDataColumn
dengan mengatur opsi schemaEvolutionMode => 'none'
.
Inferensi skema partisi
read_files
juga dapat menyimpulkan kolom partisi jika file disimpan di bawah direktori yang dipartisi gaya Apache Hive, yaitu /column_name=column_value/
. Jika disediakan, kolom partisi yang schema
ditemukan menggunakan jenis yang disediakan di schema
. Jika kolom partisi bukan bagian dari yang disediakan schema
, maka kolom partisi yang disimpulkan diabaikan.
Jika kolom ada di skema partisi dan di kolom data, nilai yang dibaca dari nilai partisi digunakan alih-alih nilai data. Jika Anda ingin mengabaikan nilai yang berasal dari direktori dan menggunakan kolom data, Anda bisa menyediakan daftar kolom partisi dalam daftar yang dipisahkan koma dengan partitionColumns
opsi .
Opsi ini partitionColumns
juga dapat digunakan untuk menginstruksikan read_files
kolom yang ditemukan untuk disertakan dalam skema akhir yang disimpulkan. Menyediakan string kosong mengabaikan semua kolom partisi.
Opsi ini schemaHints
juga dapat disediakan untuk mengambil alih skema yang disimpulkan untuk kolom partisi.
TEXT
Format dan BINARYFILE
memiliki skema tetap, tetapi read_files
juga mencoba menyimpulkan partisi untuk format ini jika memungkinkan.
Penggunaan dalam tabel streaming
read_files
dapat digunakan dalam tabel streaming untuk menyerap file ke Delta Lake. read_files
memanfaatkan Auto Loader saat digunakan dalam kueri tabel streaming. Anda harus menggunakan STREAM
kata kunci dengan read_files
. Lihat Apa itu Auto Loader? untuk detail selengkapnya.
Saat digunakan dalam kueri streaming, read_files
menggunakan sampel data untuk menyimpulkan skema, dan dapat mengembangkan skema saat memproses lebih banyak data. Lihat Mengonfigurasi inferensi dan evolusi skema di Auto Loader untuk detail selengkapnya.
Opsi
- Opsi Dasar
- Opsi generik
JSON
opsiCSV
opsiXML
opsiPARQUET
opsiAVRO
opsiBINARYFILE
opsiTEXT
opsiORC
opsi- Opsi streaming
Opsi Dasar
Opsi |
---|
format Jenis: String Format data file di jalur sumber. Disimpulkan secara otomatis jika tidak disediakan. Nilai yang diizinkan meliputi: - avro : File avro- binaryFile : File biner- csv : Membaca file CSV- json : File JSON- orc : File ORC- parquet : Membaca file Parquet menggunakan Azure Databricks- text : File teks- xml : Membaca dan menulis file XMLNilai default: None |
inferColumnTypes Jenis: Boolean Apakah akan menyimpulkan tipe kolom yang tepat saat memanfaatkan inferensi skema. Secara default, kolom disimpulkan saat menyimpulkan himpunan data JSON dan CSV. Lihat inferensi skema untuk detail selengkapnya. Perhatikan bahwa ini adalah kebalikan dari default Auto Loader. Nilai default: true |
partitionColumns Jenis: String Daftar kolom partisi gaya Apache Hive yang dipisahkan koma yang ingin Anda simpulkan dari struktur direktori file. Kolom partisi gaya Apache Hive adalah pasangan kunci-nilai yang dikombinasikan dengan tanda kesetaraan seperti <base-path>/a=x/b=1/c=y/file.format . Dalam contoh ini, kolom partisi adalah a , b , dan c . Secara default kolom ini akan secara otomatis ditambahkan ke skema Anda jika Anda menggunakan inferensi skema dan menyediakan <base-path> untuk memuat data. Jika Anda memberikan skema, Auto Loader mengharapkan kolom ini disertakan dalam skema. Jika Anda tidak ingin kolom ini sebagai bagian dari skema Anda, Anda dapat menentukan "" untuk mengabaikan kolom ini. Selain itu, Anda dapat menggunakan opsi ini ketika Anda ingin kolom disimpulkan jalur file dalam struktur direktori yang kompleks, seperti contoh di bawah ini:<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 Menentukan cloudFiles.partitionColumns sebagai year,month,day akan kembaliyear=2022 untuk file1.csv , tetapi kolom month dan day akan menjadi null .month dan day akan diurai dengan benar untuk file2.csv dan file3.csv .Nilai default: None |
schemaHints Jenis: String Informasi skema yang Anda berikan kepada Auto Loader selama inferensi skema. Lihat hint skema untuk detail selengkapnya. Nilai default: None |
useStrictGlobber Jenis: Boolean Apakah akan menggunakan globber ketat yang cocok dengan perilaku globbing default sumber file lain di Apache Spark. Lihat Pola pemuatan data umum untuk detail selengkapnya. Tersedia di Databricks Runtime 12.2 LTS ke atas. Perhatikan bahwa ini adalah kebalikan dari default untuk Auto Loader. Nilai default: true |
Opsi generik
Opsi berikut berlaku untuk semua format file.
Opsi |
---|
ignoreCorruptFiles Jenis: Boolean Apakah akan mengabaikan file yang rusak. Jika true, pekerjaan Spark akan terus berjalan ketika menemukan file yang rusak dan konten yang telah dibaca akan tetap dikembalikan. Dapat diamati sebagai numSkippedCorruptFiles dalamkolom operationMetrics dari riwayat Delta Lake. Tersedia di Databricks Runtime 11.3 LTS ke atas.Nilai default: false |
ignoreMissingFiles Jenis: Boolean Apakah mengabaikan file yang hilang. Jika true, pekerjaan Spark akan terus berjalan ketika menemukan file yang hilang dan konten yang telah dibaca akan tetap dikembalikan. Tersedia di Databricks Runtime 11.3 LTS ke atas. Nilai default: false (true untuk COPY INTO ) |
modifiedAfter Ketik: Timestamp String , misalnya, 2021-01-01 00:00:00.000000 UTC+0 Stempel waktu opsional untuk menelan file yang memiliki stempel waktu modifikasi setelah stempel waktu yang disediakan. Nilai default: None |
modifiedBefore Ketik: Timestamp String , misalnya, 2021-01-01 00:00:00.000000 UTC+0 Stempel waktu opsional untuk menyerap file yang memiliki stempel waktu modifikasi sebelum stempel waktu yang disediakan. Nilai default: None |
pathGlobFilter atau fileNamePattern Jenis: String Pola glob potensial untuk menyediakan untuk memilih file. Setara dengan PATTERN di COPY INTO . fileNamePattern dapat digunakan dalam read_files .Nilai default: None |
recursiveFileLookup Jenis: Boolean Apakah akan melewati inferensi partisi selama inferensi skema. Ini tidak mempengaruhi file mana yang dimuat. Nilai default: false |
Opsi JSON
Opsi |
---|
allowBackslashEscapingAnyCharacter Jenis: Boolean Apakah akan membiarkan efek balik untuk melepaskan diri dari karakter yang mendahuluinya. Jika tidak diaktifkan, hanya karakter yang secara eksplisit terdaftar oleh spesifikasi JSON yang dapat lolos. Nilai default: false |
allowComments Jenis: Boolean Apakah akan mengizinkan penggunaan komentar gaya Java, C, dan C ++ ( '/' , '*' dan '//' varietas) dalam konten yang diurai atau tidak.Nilai default: false |
allowNonNumericNumbers Jenis: Boolean Apakah akan mengizinkan set token non-angka ( NaN ) sebagai nilai angka mengambang legal.Nilai default: true |
allowNumericLeadingZeros Jenis: Boolean Apakah akan mengizinkan angka integral dimulai dengan nol tambahan (dapat diabaikan) (misalnya, 000001 ).Nilai default: false |
allowSingleQuotes Jenis: Boolean Apakah akan mengizinkan penggunaan tanda kutip tunggal (apostrof, karakter '\' ) untuk mengutip string (nama dan nilai String).Nilai default: true |
allowUnquotedControlChars Jenis: Boolean Apakah akan mengizinkan string JSON berisi karakter kontrol yang tidak lolos (karakter ASCII dengan nilai kurang dari 32, termasuk karakter tab dan feed baris) atau tidak. Nilai default: false |
allowUnquotedFieldNames Jenis: Boolean Apakah akan mengizinkan penggunaan nama bidang yang tidak dikutip (yang diizinkan oleh JavaScript, tetapi tidak dengan spesifikasi JSON). Nilai default: false |
badRecordsPath Jenis: String Jalur untuk menyimpan file untuk merekam informasi tentang catatan JSON yang buruk. Nilai default: None |
columnNameOfCorruptRecord Jenis: String Kolom untuk menyimpan catatan yang cacat dan tidak dapat diurai. Jika mode untuk penguraian diset sebagai DROPMALFORMED , kolom ini akan kosong.Nilai default: _corrupt_record |
dateFormat Jenis: String Format untuk mengurai string tanggal. Nilai default: yyyy-MM-dd |
dropFieldIfAllNull Jenis: Boolean Apakah akan mengabaikan kolom dari semua nilai null atau array{i> Nilai default: false |
encoding atau charset Jenis: String Nama pengodean file JSON. Lihat java.nio.charset.Charset untuk daftar opsi. Anda tidak dapat menggunakan UTF-16 dan UTF-32 saat multiline adalah true .Nilai default: UTF-8 |
inferTimestamp Jenis: Boolean Apakah akan mencoba dan menyimpulkan string tanda waktu sebagai TimestampType . Ketika diatur ketrue , inferensi skema mungkin memakan waktu jauh lebih lama. Anda harus mengaktifkan cloudFiles.inferColumnTypes untuk digunakan dengan Auto Loader.Nilai default: false |
lineSep Jenis: String String antara dua catatan JSON berturut-turut. Nilai default: Tidak ada, yang mencakup \r , \r\n , dan \n |
locale Jenis: String Pengidentifikasi java.util.Locale . Memengaruhi tanggal default, stempel waktu, dan penguraian desimal dalam JSON.Nilai default: US |
mode Jenis: String Mode uraian seputar penanganan catatan yang salah. Salah satu dari 'PERMISSIVE' ,'DROPMALFORMED' , atau 'FAILFAST' .Nilai default: PERMISSIVE |
multiLine Jenis: Boolean Apakah catatan JSON mencakup beberapa baris. Nilai default: false |
prefersDecimal Jenis: Boolean Mencoba menyimpulkan string sebagai DecimalType alih-alih float atau jenis ganda jika memungkinkan. Anda juga harus menggunakan inferensi skema, baik dengan mengaktifkaninferSchema atau menggunakan cloudFiles.inferColumnTypes dengan Auto Loader.Nilai default: false |
primitivesAsString Jenis: Boolean Apakah akan menyimpulkan jenis primitif seperti angka dan boolean sebagai StringType .Nilai default: false |
readerCaseSensitive Jenis: Boolean Menentukan perilaku sensitivitas huruf besar/kecil saat rescuedDataColumn diaktifkan. Jika true, menyelamatkan kolom data yang namanya berbeda menurut huruf besar/kecil dari skema; jika tidak, membaca data tanpa memerhatikan huruf besar/kecil. Tersedia di Databricks Runtime13.3 ke atas. Nilai default: true |
rescuedDataColumn Jenis: String Apakah akan mengumpulkan semua data yang tidak dapat diurai karena ketidakcocokan jenis data atau ketidakcocokan skema (termasuk selubung kolom) ke kolom terpisah. Kolom ini disertakan secara default saat menggunakan Auto Loader. Untuk detail selengkapnya, lihat Apa itu kolom data yang diselamatkan?. Nilai default: None |
singleVariantColumn Jenis: String Apakah akan menyerap seluruh dokumen JSON, diurai ke dalam satu kolom Varian dengan string yang diberikan sebagai nama kolom. Jika dinonaktifkan, bidang JSON akan diserap ke dalam kolomnya sendiri. Nilai default: None |
timestampFormat Jenis: String Format untuk mengurai string stempel waktu. Nilai default: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
timeZone Jenis: String java.time.ZoneId untuk digunakan saat menguraikan stempel waktu dan tanggal.Nilai default: None |
Opsi CSV
Opsi |
---|
badRecordsPath Jenis: String Jalur untuk menyimpan file untuk merekam informasi tentang catatan CSV yang buruk. Nilai default: None |
charToEscapeQuoteEscaping Jenis: Char Karakter yang digunakan untuk meloloskan diri dari karakter yang digunakan untuk meloloskan diri dari kutipan. Misalnya, untuk baris berikut: [ " a\\", b ] :- Jika karakter untuk lolos '\' tidak terdefinisi, rekaman tidak akan diurai. Pengurai akan membaca karakter: [a],[\],["],[,],[ ],[b] dan menampilkan kesalahan karena tidak dapat menemukan kuotasi penutup.- Jika karakter untuk meloloskan didefinisikan '\' sebagai '\' , rekaman akan dibaca dengan 2 nilai: [a\] dan [b] .Nilai default: '\0' |
columnNameOfCorruptRecord > [! CATATAN] >> Didukung untuk Auto Loader. Tidak didukung untuk COPY INTO .Jenis: String Kolom untuk menyimpan catatan yang cacat dan tidak dapat diurai. Jika mode untuk penguraian diset sebagai DROPMALFORMED , kolom ini akan kosong.Nilai default: _corrupt_record |
comment Jenis: Char Mendefinisikan karakter yang mewakili komentar baris ketika ditemukan di awal baris teks. Gunakan '\0' untuk menonaktifkan melompati komentar.Nilai default: '\u0000' |
dateFormat Jenis: String Format untuk mengurai string tanggal. Nilai default: yyyy-MM-dd |
emptyValue Jenis: String Representasi string dari nilai kosong. Nilai default: "" |
encoding atau charset Jenis: String Nama pengodean file CSV. Lihat java.nio.charset.Charset untuk daftar opsi. UTF-16 dan UTF-32 tidak dapat digunakan saat multiline adalah true .Nilai default: UTF-8 |
enforceSchema Jenis: Boolean Apakah akan menerapkan skema yang ditentukan atau disimpulkan secara paksa ke file CSV. Jika opsi diaktifkan, header file CSV akan diabaikan. Opsi ini diabaikan secara default saat menggunakan Auto Loader untuk menyelamatkan data dan memungkinkan evolusi skema. Nilai default: true |
escape Jenis: Char Karakter {i>escape Nilai default: '\' |
header Jenis: Boolean Apakah file CSV berisi {i>headerheader Nilai default: false |
ignoreLeadingWhiteSpace Jenis: Boolean Apakah akan mengabaikan spasi utama untuk setiap nilai yang diurai. Nilai default: false |
ignoreTrailingWhiteSpace Jenis: Boolean Apakah akan mengabaikan spasi berikutnya untuk setiap nilai yang diurai. Nilai default: false |
inferSchema Jenis: Boolean Apakah akan menyimpulkan jenis data dari baris CSV yang diurai atau untuk mengasumsikan semua kolom berasal dari StringType . Memerlukan penerusan data tambahan jika diset ke true . Untuk Auto Loader, gunakan cloudFiles.inferColumnTypes sebagai gantinya.Nilai default: false |
lineSep Jenis: String String antara dua baris JSON berturut-turut. Nilai default: Tidak ada, yang mencakup \r , \r\n , dan \n |
locale Jenis: String Pengidentifikasi java.util.Locale . Memengaruhi tanggal default, stempel waktu, dan penguraian desimal dalam CSV.Nilai default: US |
maxCharsPerColumn Jenis: Int Jumlah maksimum karakter yang diharapkan dari nilai untuk mengurai. Dapat digunakan untuk menghindari kesalahan memori. Default ke -1 , yang berarti tidak terbatas.Nilai default: -1 |
maxColumns Jenis: Int Batas tegas berapa banyak kolom yang dapat dimiliki sebuah baris. Nilai default: 20480 |
mergeSchema Jenis: Boolean Apakah akan menginferensi skema di beberapa file dan untuk menggabungkan skema setiap file. Diaktifkan secara {i>default Nilai default: false |
mode Jenis: String Mode uraian seputar penanganan catatan yang salah. Salah satu dari 'PERMISSIVE' ,'DROPMALFORMED' , dan 'FAILFAST' .Nilai default: PERMISSIVE |
multiLine Jenis: Boolean Apakah catatan CSV mencakup beberapa baris. Nilai default: false |
nanValue Jenis: String Representasi string dari nilai non-angka saat mengurai FloatType dan DoubleType kolom.Nilai default: "NaN" |
negativeInf Jenis: String Representasi string dari nilai non-angka saat mengurai FloatType atau DoubleType kolom.Nilai default: "-Inf" |
nullValue Jenis: String Representasi string dari nilai nol. Nilai default: "" |
parserCaseSensitive (tidak digunakan lagi)Jenis: Boolean Saat membaca file, apakah akan menyelaraskan kolom yang dideklarasikan di header dengan kasus skema secara sensitif. Ini adalah true secara default untuk Auto Loader. Kolom yang berbeda menurut kasus akan disimpan di rescuedDataColumn jika diaktifkan. Opsi ini tidak digunakan lagi dan digantikan dengan readerCaseSensitive .Nilai default: false |
positiveInf Jenis: String Representasi string dari nilai non-angka saat mengurai FloatType atau DoubleType kolom.Nilai default: "Inf" |
preferDate Jenis: Boolean Mencoba menyimpulkan string sebagai tanggal alih-alih tanda waktu jika memungkinkan. Anda juga harus menggunakan inferensi skema, baik dengan mengaktifkan inferSchema atau menggunakancloudFiles.inferColumnTypes dengan Auto Loader.Nilai default: true |
quote Jenis: Char Karakter yang digunakan untuk melepaskan diri dari nilai di mana pemisah bidang adalah bagian dari nilai. Nilai default: " |
readerCaseSensitive Jenis: Boolean Menentukan perilaku sensitivitas huruf besar/kecil saat rescuedDataColumn diaktifkan. Jika true, menyelamatkan kolom data yang namanya berbeda menurut huruf besar/kecil dari skema; jika tidak, membaca data tanpa memerhatikan huruf besar/kecil.Nilai default: true |
rescuedDataColumn Jenis: String Apakah akan mengumpulkan semua data yang tidak dapat diurai karena: ketidakcocokan jenis data, dan ketidakcocokan skema (termasuk selubung kolom) ke kolom terpisah. Kolom ini disertakan secara default saat menggunakan Auto Loader. Untuk detail selengkapnya, lihat Apa itu kolom data yang diselamatkan?. Nilai default: None |
sep atau delimiter Jenis: String String pemisah antar kolom. Nilai default: "," |
skipRows Jenis: Int Jumlah baris dari awal file CSV yang harus diabaikan (termasuk baris yang dikomentari dan kosong). Jika header adalah true, header akan menjadi baris pertama yang tidak dilompati dan tidak berkomentar.Nilai default: 0 |
timestampFormat Jenis: String Format untuk mengurai string stempel waktu. Nilai default: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
timeZone Jenis: String java.time.ZoneId untuk digunakan saat menguraikan stempel waktu dan tanggal.Nilai default: None |
unescapedQuoteHandling Jenis: String Strategi untuk menangani kuotasi yang tidak lolos. Opsi yang diizinkan: - STOP_AT_CLOSING_QUOTE : Jika kuotasi yang tidak lolos ditemukan dalam input, kumpulkan karakter kuotasi dan lanjutkan menguraikan nilai sebagai nilai yang dikutip, sampai kuotasi penutup ditemukan.- BACK_TO_DELIMITER : Jika kuotasi yang tidak lolos ditemukan dalam input, anggap nilainya sebagai nilai yang tidak dikutip. Ini akan membuat pengurai mengumpulkan semua karakter dari nilai yang diurai saat ini sampai pemisah yang ditentukan oleh sep ditemukan. Jika tidak ada pemisah yang ditemukan dalam nilai, pengurai akan terus mengumpulkan karakter dari input sampai pemisah atau akhir garis ditemukan.- STOP_AT_DELIMITER : Jika kuotasi yang tidak lolos ditemukan dalam input, anggap nilainya sebagai nilai yang tidak dikutip. Ini akan membuat pengurai mengumpulkan semua karakter sampai pemisah ditentukan oleh sep , atau akhir garis ditemukan dalam input.- SKIP_VALUE : Jika kuotasi yang tidak terekap ditemukan dalam input, konten yang diurai untuk nilai yang diberikan akan dilompati (sampai pemisah berikutnya ditemukan) dan nilai yang diset dalam nullValue akan dihasilkan sebagai gantinya.- RAISE_ERROR : Jika kutipan yang tidak lolos ditemukan dalam input, makaTextParsingException akan ditampilkan.Nilai default: STOP_AT_DELIMITER |
Opsi XML
Opsi | Deskripsi | Scope |
---|---|---|
rowTag |
Tag baris file XML untuk diperlakukan sebagai baris. Dalam contoh XML <books> <book><book>...<books> , nilai yang sesuai adalah book . Opsi ini wajib diisi. |
baca |
samplingRatio |
Menentukan sebagian kecil baris yang digunakan untuk inferensi skema. Fungsi bawaan XML mengabaikan opsi ini. Default: 1.0 . |
baca |
excludeAttribute |
Apakah akan mengecualikan atribut dalam elemen. Default: false . |
baca |
mode |
Mode untuk menangani rekaman yang rusak selama penguraian.PERMISSIVE : Untuk rekaman yang rusak, menempatkan string cacat ke dalam bidang yang dikonfigurasi oleh columnNameOfCorruptRecord , dan mengatur bidang cacat ke null . Untuk menyimpan rekaman yang string rusak, Anda bisa mengatur bidang jenis bernama columnNameOfCorruptRecord dalam skema yang ditentukan pengguna. Jika skema tidak memiliki bidang , rekaman yang rusak akan dihilangkan selama penguraian. Saat menyimpulkan skema, pengurai secara implisit columnNameOfCorruptRecord menambahkan bidang dalam skema output.DROPMALFORMED : Mengabaikan rekaman yang rusak. Mode ini tidak didukung untuk fungsi bawaan XML.FAILFAST : Melemparkan pengecualian ketika pengurai memenuhi rekaman yang rusak. |
baca |
inferSchema |
Jika true , mencoba menyimpulkan jenis yang sesuai untuk setiap kolom DataFrame yang dihasilkan. Jika false , semua kolom yang dihasilkan berjenis string . Default:true . Fungsi bawaan XML mengabaikan opsi ini. |
baca |
columnNameOfCorruptRecord |
Memungkinkan penggantian nama bidang baru yang berisi string cacat yang dibuat olehPERMISSIVE modus. Default: spark.sql.columnNameOfCorruptRecord . |
baca |
attributePrefix |
Awalan untuk atribut untuk membedakan atribut dari elemen. Ini akan menjadi awalan untuk nama bidang. Defaultnya adalah _ . Bisa kosong untuk membaca XML, tetapi tidak untuk menulis. |
baca, tulis |
valueTag |
Tag yang digunakan untuk data karakter dalam elemen yang juga memiliki elemen atribut atau elemen turunan. Pengguna dapat menentukan valueTag bidang dalam skema atau akan ditambahkan secara otomatis selama inferensi skema ketika data karakter ada dalam elemen dengan elemen atau atribut lain. Default: _VALUE |
baca,tulis |
encoding |
Untuk membaca, dekode file XML dengan jenis pengodean yang diberikan. Untuk menulis, menentukan pengodean (charset) file XML yang disimpan. Fungsi bawaan XML mengabaikan opsi ini. Default: UTF-8 . |
baca, tulis |
ignoreSurroundingSpaces |
Menentukan apakah spasi putih di sekitarnya dari nilai yang dibaca harus dilewati. Default: true . Data karakter khusus spasi kosong diabaikan. |
baca |
rowValidationXSDPath |
Jalur ke file XSD opsional yang digunakan untuk memvalidasi XML untuk setiap baris satu per satu. Baris yang gagal divalidasi diperlakukan seperti kesalahan parse seperti di atas. XSD tidak memengaruhi skema yang disediakan, atau disimpulkan. | baca |
ignoreNamespace |
Jika true , awalan namespace pada elemen dan atribut XML diabaikan. <abc:author> Tag dan <def:author> , misalnya, diperlakukan seolah-olah keduanya hanya <author> . Namespace tidak dapat diabaikan pada rowTag elemen , hanya turunan bacanya. Penguraian XML tidak sadar namespace meskipun false . Default: false . |
baca |
timestampFormat |
String format tanda waktu kustom yang mengikuti format pola tanggalwaktu. Ini berlaku untuk timestamp jenis. Default: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] . |
baca, tulis |
timestampNTZFormat |
String format kustom untuk tanda waktu tanpa zona waktu yang mengikuti format pola tanggalwaktu. Ini berlaku untuk jenis TimestampNTZType. Default:yyyy-MM-dd'T'HH:mm:ss[.SSS] |
baca, tulis |
dateFormat |
String format tanggal kustom yang mengikuti format pola tanggalwaktu. Ini berlaku untuk jenis tanggal. Default: yyyy-MM-dd . |
baca, tulis |
locale |
Mengatur lokal sebagai tag bahasa dalam format IETF BCP 47. Misalnya, locale digunakan saat mengurai tanggal dan tanda waktu. Default: en-US . |
baca |
rootTag |
Tag akar file XML. Misalnya, dalam <books> <book><book>...</books> , nilai yang sesuai adalah books . Anda dapat menyertakan atribut dasar dengan menentukan nilai seperti books foo="bar" . Default: ROWS . |
tulis |
declaration |
Konten deklarasi XML untuk ditulis di awal setiap file XML output, sebelum rootTag . Misalnya, nilai foo penyebab <?xml foo?> ditulis. Atur ke string kosong untuk ditekan. Default: version="1.0" encoding="UTF-8" standalone="yes" . |
tulis |
arrayElementName |
Nama elemen XML yang mengapit setiap elemen kolom bernilai array saat menulis. Default: item . |
tulis |
nullValue |
Mengatur representasi string dari nilai null. Default: string null . Ketika ini adalah null , pengurai tidak menulis atribut dan elemen untuk bidang. |
baca, tulis |
compression |
Kode pemadatan yang akan digunakan saat menyimpan ke file. Ini bisa menjadi salah satu nama pendek yang tidak peka huruf besar/kecil yang diketahui (none , , bzip2 , gzip lz4 , snappy , dandeflate ). Fungsi bawaan XML mengabaikan opsi ini. Default: none . |
tulis |
validateName |
Jika true, melemparkan kesalahan pada kegagalan validasi nama elemen XML. Misalnya, nama bidang SQL dapat memiliki spasi, tetapi nama elemen XML tidak dapat. Default:true . |
tulis |
readerCaseSensitive |
Menentukan perilaku sensitivitas kasus saat rescuedDataColumn diaktifkan. Jika true, menyelamatkan kolom data yang namanya berbeda menurut huruf besar/kecil dari skema; jika tidak, membaca data tanpa memerhatikan huruf besar/kecil. Default: true . |
baca |
rescuedDataColumn |
Apakah akan mengumpulkan semua data yang tidak dapat diurai karena ketidakcocokan jenis data dan ketidakcocokan skema (termasuk casing kolom) ke kolom terpisah. Kolom ini disertakan secara default saat menggunakan Auto Loader. Untuk detail selengkapnya, lihat Apa itu kolom data yang diselamatkan?. Default: Tidak ada. | baca |
Opsi PARQUET
Opsi |
---|
datetimeRebaseMode Jenis: String Mengontrol {i>rebaseEXCEPTION, LEGACY , danCORRECTED .Nilai default: LEGACY |
int96RebaseMode Jenis: String Mengontrol {i>rebaseEXCEPTION, LEGACY , danCORRECTED .Nilai default: LEGACY |
mergeSchema Jenis: Boolean Apakah akan menginferensi skema di beberapa file dan untuk menggabungkan skema setiap file. Nilai default: false |
readerCaseSensitive Jenis: Boolean Menentukan perilaku sensitivitas huruf besar/kecil saat rescuedDataColumn diaktifkan. Jika true, menyelamatkan kolom data yang namanya berbeda menurut huruf besar/kecil dari skema; jika tidak, membaca data tanpa memerhatikan huruf besar/kecil.Nilai default: true |
rescuedDataColumn Jenis: String Apakah akan mengumpulkan semua data yang tidak dapat diurai karena: ketidakcocokan jenis data, dan ketidakcocokan skema (termasuk selubung kolom) ke kolom terpisah. Kolom ini disertakan secara default saat menggunakan Auto Loader. Untuk detail selengkapnya, lihat Apa itu kolom data yang diselamatkan?. Nilai default: None |
Opsi AVRO
Opsi |
---|
avroSchema Jenis: String Skema opsional yang disediakan oleh pengguna dalam format Avro. Saat membaca Avro, opsi ini dapat diatur ke skema yang berevolusi, yang kompatibel tetapi berbeda dengan skema Avro yang sebenarnya. Skema deserialisasi akan konsisten dengan skema yang dikembangkan. Misalnya, jika Anda mengatur skema yang berevolusi yang berisi satu kolom tambahan dengan nilai default, hasil baca juga akan berisi kolom baru. Nilai default: None |
datetimeRebaseMode Jenis: String Mengontrol {i>rebaseEXCEPTION, LEGACY , danCORRECTED .Nilai default: LEGACY |
mergeSchema Jenis: Boolean Apakah akan menginferensi skema di beberapa file dan untuk menggabungkan skema setiap file. mergeSchema untuk Avro tidak mengendurkan jenis data.Nilai default: false |
readerCaseSensitive Jenis: Boolean Menentukan perilaku sensitivitas huruf besar/kecil saat rescuedDataColumn diaktifkan. Jika true, menyelamatkan kolom data yang namanya berbeda menurut huruf besar/kecil dari skema; jika tidak, membaca data tanpa memerhatikan huruf besar/kecil.Nilai default: true |
rescuedDataColumn Jenis: String Apakah akan mengumpulkan semua data yang tidak dapat diurai karena: ketidakcocokan jenis data, dan ketidakcocokan skema (termasuk selubung kolom) ke kolom terpisah. Kolom ini disertakan secara default saat menggunakan Auto Loader. Untuk detail selengkapnya, lihat Apa itu kolom data yang diselamatkan?. Nilai default: None |
Opsi BINARYFILE
File biner tidak memiliki opsi konfigurasi tambahan.
Opsi TEXT
Opsi |
---|
encoding Jenis: String Nama pengkodean file TEXT. Lihat java.nio.charset.Charset untuk daftar opsi.Nilai default: UTF-8 |
lineSep Jenis: String String antara dua baris TEXT berturut-turut. Nilai default: Tidak ada, yang mencakup \r , \r\n , dan \n |
wholeText Jenis: Boolean Apakah akan membaca file sebagai satu baris. Nilai default: false |
Opsi ORC
Opsi |
---|
mergeSchema Jenis: Boolean Apakah akan menginferensi skema di beberapa file dan untuk menggabungkan skema setiap file. Nilai default: false |
Opsi streaming
Opsi ini berlaku saat menggunakan read_files
di dalam tabel streaming atau kueri streaming.
Opsi |
---|
allowOverwrites Jenis: Boolean Apakah akan memproses ulang file yang telah dimodifikasi setelah penemuan. Versi terbaru file yang tersedia akan diproses selama refresh jika telah dimodifikasi sejak waktu mulai kueri refresh terakhir yang berhasil. Nilai default: false |
includeExistingFiles Jenis: Boolean Apakah akan menyertakan file yang ada di jalur input pemrosesan aliran atau hanya memproses file baru yang tiba setelah pengaturan awal. Opsi ini dievaluasi hanya ketika Anda memulai aliran untuk pertama kalinya. Mengubah opsi ini setelah memulai ulang aliran tidak berpengaruh. Nilai default: true |
maxBytesPerTrigger Jenis: Byte String Jumlah maksimum byte baru yang akan diproses di setiap pemicu. Anda dapat menentukan string byte seperti 10g untuk membatasi setiap microbatch hingga 10 GB data. Ini adalah maksimum yang lembut. Jika Anda memiliki file masing-masing 3 GB, Azure Databricks memproses 12 GB dalam pengurangan mikro. Ketika digunakan bersama dengan maxFilesPerTrigger , Azure Databricks mengonsumsi hingga batas bawah maxFilesPerTrigger atau maxBytesPerTrigger , mana yang dicapai terlebih dahulu.Catatan: Untuk tabel streaming yang dibuat pada gudang SQL tanpa server, opsi ini dan maxFilesPerTrigger tidak boleh diatur untuk memanfaatkan kontrol penerimaan dinamis, yang diskalakan berdasarkan ukuran beban kerja dan sumber daya komputasi tanpa server untuk memberi Anda latensi dan performa terbaik.Nilai default: None |
maxFilesPerTrigger Jenis: Integer Jumlah maksimum file baru yang akan diproses di setiap pemicu. Ketika digunakan bersama dengan maxBytesPerTrigger , Azure Databricks mengonsumsi hingga batas bawah maxFilesPerTrigger atau maxBytesPerTrigger , mana yang dicapai terlebih dahulu.Catatan: Untuk tabel streaming yang dibuat pada gudang SQL tanpa server, opsi ini dan maxBytesPerTrigger tidak boleh diatur untuk memanfaatkan kontrol penerimaan dinamis, yang diskalakan berdasarkan ukuran beban kerja dan sumber daya komputasi tanpa server untuk memberi Anda latensi dan performa terbaik.Nilai default: 1000 |
schemaEvolutionMode Jenis: String Mode untuk mengembangkan skema sebagai kolom baru ditemukan dalam data. Secara default, kolom disimpulkan sebagai string saat menyimpulkan himpunan data JSON. Lihat evolusi skema untuk detail selengkapnya. Opsi ini tidak berlaku untuk text file dan binaryFile .Nilai default: "addNewColumns" saat skema tidak disediakan."none" sebaiknya. |
schemaLocation Jenis: String Lokasi untuk menyimpan skema yang disimpulkan dan perubahan selanjutnya. Lihat inferensi skema untuk detail selengkapnya. Lokasi skema tidak diperlukan saat digunakan dalam kueri tabel streaming. Nilai default: None |
Contoh
-- 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);