read_files fungsi table-valued

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 13.3 LTS ke atas

Membaca file di bawah lokasi yang disediakan dan mengembalikan data dalam bentuk tabular.

JSONMendukung format file , , XMLCSV, TEXT, BINARYFILEPARQUET, , 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: A STRING 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_filesschema 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_filesjuga 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
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 dan menulis ke file CSV
* json: File JSON
* orc: File ORC
* parquet: Membaca file Parquet menggunakan Azure Databricks
* text: File teks
* xml: Membaca dan menulis file XML

Nilai 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 kembali
year=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 dalam
kolom 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 ke
true, 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 mengaktifkan
inferSchema 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 Runtime
13.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
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 yang akan diloloskan dari '\' tidak ditentukan, baris tidak akan diurai. Pengurai akan membaca karakter: [a],[\],["],[,],[ ],[b] dan menampilkan kesalahan karena tidak dapat menemukan kuotasi penutup.
* Jika karakter yang akan diloloskan dari '\' ditentukan sebagai '\', baris 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 menggunakan
cloudFiles.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, maka
TextParsingException 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 oleh
PERMISSIVE Mode. 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, gziplz4, snappy', and<br>deflate'). 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, dan
CORRECTED.

Nilai default: LEGACY
int96RebaseMode

Jenis: String

Mengontrol {i>rebaseEXCEPTION, LEGACY, dan
CORRECTED.

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, dan
CORRECTED.

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);