Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Halaman ini mencantumkan opsi input dan output yang tersedia untuk API Spark yang membaca dan menulis data.
Opsi DataFrameReader
Gunakan opsi ini dengan DataFrameReader.option(), DataFrameReader.options(), read_files, COPY INTO, dan Auto Loader untuk mengontrol cara Azure Databricks membaca file data.
Example
Contoh berikut diatur multiLine ke True untuk membaca file JSON:
Python
df = spark.read.format("json").option("multiLine", True).load("/path/to/data")
Scala
val df = spark.read.format("json").option("multiLine", "true").load("/path/to/data")
SQL
SELECT * FROM read_files("/path/to/data", format => "json", multiLine => true)
Umum
Opsi berikut berlaku untuk semua format file.
| Key | Default | Description |
|---|---|---|
ignoreCorruptFiles |
false |
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. Untuk COPY INTO, Anda dapat mengamati file rusak yang dilewati seperti numSkippedCorruptFiles di operationMetrics kolom riwayat Delta Lake. Tersedia di Databricks Runtime 11.3 LTS ke atas. |
ignoreMissingFiles |
false untuk Auto Loader, true untuk COPY INTO (warisan) |
Apakah mengabaikan file yang hilang. Jika true, pekerjaan Spark terus berjalan saat menemukan file yang hilang dan konten masih dikembalikan. Tersedia di Databricks Runtime 11.3 LTS ke atas. |
modifiedAfter |
Tidak | Tanda waktu opsional sebagai filter untuk hanya memasukkan file yang memiliki tanda waktu modifikasi setelah tanda waktu yang disediakan. |
modifiedBefore |
Tidak | Cap waktu opsional sebagai filter untuk hanya memasukkan file yang memiliki cap waktu modifikasi sebelum cap waktu yang disediakan. |
pathGlobFilter atau fileNamePattern |
Tidak | Pola glob yang berpotensi digunakan untuk memilih file. Setara dengan PATTERN dalam COPY INTO (warisan).
fileNamePattern dapat digunakan dalam read_files. |
recursiveFileLookup |
false |
Ketika true, opsi ini mencari melalui direktori berlapis bahkan jika namanya tidak mengikuti skema penamaan partisi seperti date=2019-07-01. |
Avro
| Key | Default | Description |
|---|---|---|
avroSchema |
Tidak | Skema opsional yang disediakan oleh pengguna dalam format Avro. Saat membaca Avro, opsi ini dapat diatur ke skema berevolusi yang kompatibel tetapi berbeda dari skema Avro yang sebenarnya. Skema deserialisasi konsisten dengan skema yang berkembang. Misalnya, jika Anda mengatur skema yang berkembang yang berisi satu kolom tambahan dengan nilai default, hasil baca juga berisi kolom baru. |
avroSchemaEvolutionMode |
none |
Cara menangani evolusi skema saat menggunakan registri skema. Nilai yang valid: none (abaikan perubahan skema dan lanjutkan pekerjaan), restart (ketika perubahan skema terdeteksi, menaikkan UnknownFieldException dan memerlukan restart pekerjaan). |
datetimeRebaseMode |
LEGACY |
Mengontrol pengubahan dasar nilai TANGGAL dan CAP WAKTU antara kalender Julian dan Gregorian Proleptik. Nilai yang valid: EXCEPTION, LEGACY, dan CORRECTED. |
enableStableIdentifiersForUnionType |
false |
Apakah akan menggunakan nama bidang stabil untuk jenis Avro Union. Saat diaktifkan, nama bidang jenis union berasal dari nama jenisnya dalam huruf kecil (misalnya, member_int, member_string). Memberikan pengecualian jika dua nama jenis identik setelah huruf kecil. |
mergeSchema |
false |
Apakah ingin menentukan skema di beberapa file dan menggabungkan skema dari tiap file?
mergeSchema untuk Avro tidak memperlonggar tipe data. |
mode |
FAILFAST |
Mode pengurai untuk menangani rekaman yang rusak. Nilai yang valid: FAILFAST (melemparkan pengecualian), PERMISSIVE (mengatur bidang cacat ke null), DROPMALFORMED (secara diam-diam menjatuhkan rekaman buruk). |
readerCaseSensitive |
true |
Menentukan perilaku sensitivitas huruf besar/kecil saat rescuedDataColumn diaktifkan. Jika true, selamatkan kolom data yang namanya berbeda menurut kasus dari skema. Saat false, baca data dengan cara yang tidak peka huruf besar/kecil. |
recursiveFieldMaxDepth |
Tidak | Kedalaman rekursi maksimum untuk bidang Avro rekursif. Atur ke 1 untuk memotong semua bidang rekursif, 2 untuk memungkinkan satu tingkat rekursi, dan seterusnya hingga 15. Saat bidang unset atau 0, rekursif tidak diizinkan. Nilai yang valid: 0 ke 15. |
rescuedDataColumn |
Tidak | Apakah perlu mengumpulkan semua data yang tidak dapat diurai karena ketidakcocokan tipe data dan ketidakcocokan skema (termasuk pengejaan kolom) ke dalam kolom terpisah. Kolom ini disertakan secara default saat menggunakan Auto Loader.COPY INTO (warisan) tidak mendukung kolom data yang diselamatkan karena Anda tidak dapat mengatur skema secara manual menggunakan COPY INTO. Databricks merekomendasikan penggunaan Auto Loader untuk sebagian besar skenario penyerapan.Untuk detail selengkapnya, lihat Apa itu kolom data yang diselamatkan?. |
stableIdentifierPrefixForUnionType |
member_ |
Awalan yang digunakan untuk nama bidang tipe union stabil saat enableStableIdentifiersForUnionType=true. |
CSV
| Key | Default | Description |
|---|---|---|
badRecordsPath |
Tidak | Jalur untuk menyimpan file untuk merekam informasi tentang rekaman CSV yang salah. |
charToEscapeQuoteEscaping |
\0 |
Karakter yang digunakan untuk menghindari karakter yang digunakan untuk menghindari tanda kutip. Misalnya, untuk rekaman berikut: [ " a\\", b ]:
|
columnNameOfCorruptRecord |
_corrupt_record |
Didukung oleh Auto Loader. Tidak didukung untuk COPY INTO (versi lama).Kolom untuk menyimpan rekaman yang rusak dan tidak dapat diurai. Jika mode untuk penguraian diset sebagai DROPMALFORMED, kolom ini akan kosong. |
comment |
\0 |
Mendefinisikan karakter yang mewakili komentar baris ketika ditemukan di awal baris teks. Gunakan '\0' untuk menonaktifkan pelompatan komentar. |
dateFormat |
yyyy-MM-dd |
Format untuk memproses string tanggal. |
emptyValue |
String kosong | Representasi string untuk nilai yang kosong. |
enableDateTimeParsingFallback |
false |
Apakah akan kembali ke tanggal warisan dan perilaku penguraian tanda waktu ketika nilai tidak dapat diurai dengan format yang ditentukan. Ketika false, kegagalan penguraian menimbulkan kesalahan atau menghasilkan null tergantung pada mode. |
encoding atau charset |
UTF-8 |
Nama pengodean file CSV. Lihat java.nio.charset.Charset untuk daftar opsi.
UTF-16 dan UTF-32 tidak dapat digunakan saat multiline adalah true. |
enforceSchema |
true |
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. |
escape |
\ |
Karakter escape untuk digunakan saat mengurai data. |
extension |
csv |
Ekstensi nama file yang diharapkan. File tanpa ekstensi ini difilter selama pembacaan. |
failOnUnknownFields |
false |
Apakah gagal ketika rekaman CSV berisi kolom yang tidak ada dalam skema. Ketika false, kolom yang tidak dikenal dihilangkan secara diam-diam atau diselamatkan tergantung pada rescuedDataColumn. |
failOnWidenedFields |
false |
Apakah gagal ketika nilai bidang tidak dapat diurai sebagai jenis skema yang dideklarasikan tanpa pellebaran. Ketika false, nilai yang diperlebar jenis diselamatkan secara diam-diam tergantung pada rescuedDataColumn. Pengaturan failOnUnknownFields=true dapat menutupi efek opsi ini. |
header |
false |
Apakah file CSV berisi tajuk? Auto Loader menganggap bahwa file memiliki judul saat menyimpulkan skema. |
ignoreLeadingWhiteSpace |
false |
Apakah akan mengabaikan spasi di awal untuk setiap nilai yang diurai. |
ignoreTrailingWhiteSpace |
false |
Apakah akan mengabaikan spasi kosong di akhir untuk setiap nilai hasil penguraian. |
inferSchema |
false |
Apakah ingin menyimpulkan jenis data dari catatan CSV yang diurai atau mengasumsikan semua kolom berasal dari StringType. Memerlukan pemrosesan ulang data jika diset ke true. Untuk Auto Loader, gunakan cloudFiles.inferColumnTypes sebagai gantinya. |
inputBufferSize |
1048576 (1 MB) |
Ukuran buffer dalam byte untuk pengurai CSV. Berguna untuk menyetel penggunaan memori saat mengurai file CSV besar. Nilai yang valid: bilangan bulat positif. |
lineSep |
Tidak ada, yang mencakup \r, \r\n, dan \n |
Deretan antara dua catatan CSV berturut-turut. |
locale |
US |
Sebuah pengenal java.util.Locale. Memengaruhi tanggal default, stempel waktu, dan penguraian desimal dalam CSV. |
maxCharsPerColumn |
-1 |
Jumlah maksimum karakter yang diharapkan dari sebuah nilai untuk dianalisis. Dapat digunakan untuk menghindari kesalahan memori. Pengaturan awal adalah -1, yang berarti tidak terbatas. Nilai yang valid: bilangan bulat positif, atau -1 untuk tidak terbatas. |
maxColumns |
20480 |
Batas tegas berapa banyak kolom yang dapat dimiliki sebuah catatan. Nilai yang valid: bilangan bulat positif. |
mergeSchema |
false |
Apakah ingin menentukan skema di beberapa file dan menggabungkan skema dari tiap file? Diaktifkan secara default untuk Auto Loader saat menyimpulkan skema. |
mode |
PERMISSIVE |
Mode parser untuk menangani rekaman yang rusak. Nilai yang valid: PERMISSIVE, DROPMALFORMED, FAILFAST. |
multiLine |
false |
Apakah catatan CSV mencakup beberapa baris. |
nanValue |
NaN |
Representasi string dari nilai yang bukan angka saat mengurai kolom FloatType dan DoubleType. |
negativeInf |
-Inf |
Representasi string dari infinitas negatif saat mengurai kolom FloatType atau DoubleType. |
nullValue |
String kosong | Representasi string dari suatu nilai yang null. |
parserCaseSensitive (tidak digunakan lagi) |
false |
Saat membaca file, apakah akan menyelaraskan kolom yang dideklarasikan di header dengan kasus skema secara sensitif.
true adalah pilihan default untuk Auto Loader. Kolom yang berbeda menurut kasus akan dipulihkan di rescuedDataColumn jika diaktifkan. Opsi ini tidak digunakan lagi dan digantikan dengan readerCaseSensitive. |
positiveInf |
Inf |
Representasi string dari infinitas positif ketika mengurai kolom FloatType atau DoubleType. |
preferDate |
true |
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. |
quote |
" |
Karakter yang digunakan untuk menghindari nilai-nilai di mana pemisah bidang adalah bagian dari nilai tersebut. |
readerCaseSensitive |
true |
Menentukan perilaku sensitivitas huruf besar/kecil saat rescuedDataColumn diaktifkan. Jika true, selamatkan kolom data yang namanya berbeda menurut kasus dari skema. Saat false, baca data dengan cara yang tidak peka huruf besar/kecil. |
rescuedDataColumn |
Tidak | Apakah perlu mengumpulkan semua data yang tidak dapat diurai karena ketidakcocokan tipe data dan ketidakcocokan skema (termasuk pengejaan kolom) ke dalam kolom terpisah. Kolom ini disertakan secara default saat menggunakan Auto Loader. Untuk detail selengkapnya, lihat Apa itu kolom data yang diselamatkan?.COPY INTO (warisan) tidak mendukung kolom data yang diselamatkan karena Anda tidak dapat mengatur skema secara manual menggunakan COPY INTO. Databricks merekomendasikan penggunaan Auto Loader untuk sebagian besar skenario penyerapan. |
sep atau delimiter |
, |
String pemisah antar kolom. |
singleVariantColumn |
Tidak | Saat diatur ke nama kolom, membaca seluruh rekaman CSV ke dalam satu VariantType kolom dengan nama tersebut alih-alih mengurai setiap bidang ke dalam kolomnya sendiri. Membutuhkan header=true. |
skipRows |
0 |
Jumlah baris dari awal file CSV yang harus diabaikan (termasuk baris yang dikomentari dan kosong). Jika header bernilai benar, header akan menjadi baris pertama yang tidak dilompati dan tidak dikomentari. Nilai yang valid: bilangan bulat positif atau 0. |
timeFormat |
HH:mm:ss |
Format untuk mengurai TimeType nilai kolom. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
Format untuk memproses string penanda waktu. |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Format untuk mengurai tanda waktu tanpa string zona waktu (TimestampNTZType). |
timeZone |
Tidak |
java.time.ZoneId untuk digunakan saat menguraikan stempel waktu dan tanggal. |
unescapedQuoteHandling |
STOP_AT_DELIMITER |
Strategi untuk menangani tanda kutip yang belum di-escape. Opsi yang diizinkan:
|
Excel
| Key | Default | Description |
|---|---|---|
dataAddress |
Tidak | Rentang sel yang akan dibaca dalam sintaks Excel. Jika dihilangkan, membaca semua sel yang valid dari lembar pertama. Gunakan "SheetName!C5:H10" untuk membaca rentang dari lembar bernama, "C5:H10" untuk membaca rentang dari lembar pertama, atau "SheetName" untuk membaca semua data dari lembar tertentu. |
headerRows |
0 |
Jumlah baris awal yang akan digunakan sebagai header nama kolom. Ketika dataAddress ditentukan, ini berlaku dalam rentang sel. Ketika 0, nama kolom dibuat secara otomatis sebagai _c1, , _c2, _c3dll. Nilai yang valid: 0, 1. |
ignoreMissingSheet |
false |
Apakah akan secara diam-diam melewati file yang tidak berisi lembar yang ditentukan oleh dataAddress. Ketika false, kesalahan dilemparkan jika file kehilangan lembar yang diminta. Hanya berlaku ketika nama lembar ditentukan dalam dataAddress. Nilai yang valid: true, false. |
includePhoneticRuns |
false |
Apakah akan menyertakan anotasi fonetik (seperti pinyin atau furigana) yang digabungkan ke nilai string sel saat membaca file XLSX. Nilai yang valid: true, false. |
operation |
readSheet |
Operasi yang akan dilakukan pada buku kerja Excel. Nilai yang valid: readSheet (membaca data dari lembar), listSheets (mengembalikan struct dengan bidang sheetIndex: long dan sheetName: String untuk setiap lembar). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
String format kustom untuk nilai timestamp-without-timezone yang disimpan sebagai string dalam Excel. Format tanggal kustom mengikuti format pada pola Tanggalwaktu. |
dateFormat |
yyyy-MM-dd |
String format kustom untuk nilai string yang dibaca sebagai Date. Format tanggal kustom mengikuti format pada pola Tanggalwaktu. |
JSON
| Key | Default | Description |
|---|---|---|
allowBackslashEscapingAnyCharacter |
false |
Apakah akan mengizinkan backslash untuk menghindari karakter yang mengikutinya. Jika tidak diaktifkan, hanya karakter yang secara eksplisit terdaftar oleh spesifikasi JSON yang dapat lolos. |
allowComments |
false |
Apakah akan mengizinkan penggunaan komentar gaya Java, C, dan C ++ ('/', '*'dan '//' varietas) dalam konten yang diurai atau tidak. |
allowNonNumericNumbers |
true |
Apakah akan mengizinkan penggunaan kumpulan token bukan angka (not-a-number) (NaN) sebagai nilai bilangan mengambang yang sah. |
allowNumericLeadingZeros |
false |
Apakah akan mengizinkan angka integral dimulai dengan nol tambahan (dapat diabaikan) (misalnya, 000001). |
allowSingleQuotes |
true |
Apakah akan mengizinkan penggunaan tanda kutip tunggal (apostrof, karakter '\') untuk mengutip string (nama dan nilai String). |
allowUnquotedControlChars |
false |
Apakah akan mengizinkan string JSON berisi karakter kontrol yang tidak di-escape (karakter ASCII dengan nilai kurang dari 32, termasuk karakter tab dan karakter pemisah baris) atau tidak. |
allowUnquotedFieldNames |
false |
Apakah akan mengizinkan penggunaan nama bidang yang tidak dikutip, yang diizinkan oleh JavaScript, tetapi tidak oleh spesifikasi JSON. |
alternateVariantEncoding |
Tidak | Pengodean yang digunakan untuk nilai Varian di JSON sumber. Atur ke Z85 untuk mendekode nilai Varian yang telah dikodekan Base85 alih-alih disimpan sebagai JSON sebaris. |
badRecordsPath |
Tidak | Jalur untuk menyimpan file untuk mencatat informasi tentang rekam JSON yang rusak.badRecordsPath Menggunakan opsi dalam sumber data berbasis file memiliki batasan berikut:
|
columnNameOfCorruptRecord |
_corrupt_record |
Kolom untuk menyimpan rekaman yang rusak dan tidak dapat diurai. Jika mode untuk penguraian diset sebagai DROPMALFORMED, kolom ini akan kosong. |
dateFormat |
yyyy-MM-dd |
Format untuk memproses string tanggal. |
dropFieldIfAllNull |
false |
Apakah akan mengabaikan kolom yang berisi semua nilai null atau array dan struktur kosong selama inferensi skema. |
encoding atau charset |
UTF-8 |
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. |
inferTimestamp |
false |
Apakah akan mencoba menginterpretasikan teks 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. |
lineSep |
Tidak ada, yang mencakup \r, \r\n, dan \n |
Sebuah string di antara dua catatan JSON berurutan. |
locale |
US |
Sebuah pengenal java.util.Locale. Memengaruhi tanggal default, cap waktu, dan pemrosesan desimal dalam JSON. |
maxNestingDepth |
500 |
Kedalaman berlapis maksimum yang diizinkan untuk objek dan array JSON. Tingkatkan nilai ini untuk dokumen berlapis dalam. Nilai yang valid: bilangan bulat positif. |
maxNumLen |
1000 |
Panjang maksimum token angka dalam input JSON. Tingkatkan nilai ini untuk JSON dengan literal numerik besar. Nilai yang valid: bilangan bulat positif. |
maxStringLen |
Unlimited | Panjang maksimum nilai string dalam input JSON. Atur untuk membatasi penggunaan memori saat mengurai JSON dengan string besar. Nilai yang valid: bilangan bulat positif. |
mode |
PERMISSIVE |
Mode parser untuk menangani rekaman yang rusak. Nilai yang valid: PERMISSIVE, DROPMALFORMED, FAILFAST. |
multiLine |
false |
Apakah catatan JSON mencakup beberapa baris. |
prefersDecimal |
false |
Mencoba menyimpulkan string sebagai DecimalType alih-alih tipe float atau double jika memungkinkan. Anda juga harus menggunakan inferensi skema, baik dengan mengaktifkan inferSchema atau menggunakan cloudFiles.inferColumnTypes dengan Auto Loader. |
primitivesAsString |
false |
Apakah perlu menyimpulkan tipe data primitif seperti angka dan boolean sebagai StringType. |
readerCaseSensitive |
true |
Menentukan perilaku sensitivitas huruf besar/kecil saat rescuedDataColumn diaktifkan. Jika true, selamatkan kolom data yang namanya berbeda menurut kasus dari skema. Saat false, baca data dengan cara yang tidak peka huruf besar/kecil. Tersedia di Databricks Runtime 13.3 ke atas. |
rescuedDataColumn |
Tidak | Apakah akan mengumpulkan semua data yang tidak dapat diurai karena ketidakcocokan tipe data atau 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?.COPY INTO (warisan) tidak mendukung kolom data yang diselamatkan karena Anda tidak dapat mengatur skema secara manual menggunakan COPY INTO. Databricks merekomendasikan penggunaan Auto Loader untuk sebagian besar skenario penyerapan. |
singleVariantColumn |
Tidak | Apakah akan menyerap seluruh dokumen JSON, diurai ke dalam satu kolom Varian dengan string yang ditentukan sebagai nama kolom. Jika tidak diatur, bidang JSON diserap ke dalam kolomnya sendiri. Nilai yang valid: string apa pun. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
Format untuk memproses string penanda waktu. |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Format untuk mengurai tanda waktu tanpa string zona waktu (TimestampNTZType). |
timeZone |
Tidak |
java.time.ZoneId untuk digunakan saat menguraikan stempel waktu dan tanggal. |
upgradeExceptionAsBadRecord |
false |
Apakah akan memperlakukan pengecualian peningkatan jenis (misalnya, ketika nilai tidak dapat dilebarkan ke jenis kolom yang dideklarasikan) sebagai rekaman buruk daripada melempar pengecualian. |
Kafka
Untuk daftar lengkap opsi pembaca Kafka, lihat Opsi Kafka DataStreamReader. Opsi berikut hanya berlaku untuk pembacaan batch menggunakan spark.read.format("kafka").
| Key | Default | Description |
|---|---|---|
endingOffsets |
latest |
Di mana berhenti membaca. Nilai yang valid: latest, atau string offset JSON untuk setiap partisi seperti {"topicA":{"0":50,"1":-1}}.Dalam string JSON, -1 adalah offset terbaru.
-2, yang merupakan offset paling awal, tidak diizinkan sebagai offset akhir. |
endingOffsetsByTimestamp |
Tidak | Offset akhir per partisi ditentukan sebagai tanda waktu dalam milidetik. Nilai yang valid: string tanda waktu JSON untuk setiap partisi, seperti {"topicA":{"0":2000,"1":3000}}. |
endingTimestamp |
Tidak | Tanda waktu akhir global dalam milidetik diterapkan ke semua partisi. Nilai yang valid: bilangan bulat non-negatif. |
ORC
| Key | Default | Description |
|---|---|---|
mergeSchema |
false |
Apakah ingin menentukan skema di beberapa file dan menggabungkan skema dari tiap file? |
Parket
| Key | Default | Description |
|---|---|---|
datetimeRebaseMode |
LEGACY |
Mengontrol pengubahan dasar nilai TANGGAL dan CAP WAKTU antara kalender Julian dan Gregorian Proleptik. Nilai yang valid: EXCEPTION, LEGACY, dan CORRECTED. |
int96RebaseMode |
LEGACY |
Mengontrol pengubahan basis nilai cap waktu INT96 antara kalender Julian dan kalender Gregorian Proleptik. Nilai yang valid: EXCEPTION, LEGACY, dan CORRECTED. |
mergeSchema |
false |
Apakah ingin menentukan skema di beberapa file dan menggabungkan skema dari tiap file? |
readerCaseSensitive |
true |
Menentukan perilaku sensitivitas huruf besar/kecil saat rescuedDataColumn diaktifkan. Jika true, selamatkan kolom data yang namanya berbeda menurut kasus dari skema. Saat false, baca data dengan cara yang tidak peka huruf besar/kecil. |
rescuedDataColumn |
Tidak | Apakah perlu mengumpulkan semua data yang tidak dapat diurai karena ketidakcocokan tipe data dan ketidakcocokan skema (termasuk pengejaan kolom) ke dalam kolom terpisah. Kolom ini disertakan secara default saat menggunakan Auto Loader. Untuk detail selengkapnya, lihat Apa itu kolom data yang diselamatkan?.COPY INTO (warisan) tidak mendukung kolom data yang diselamatkan karena Anda tidak dapat mengatur skema secara manual menggunakan COPY INTO. Databricks merekomendasikan penggunaan Auto Loader untuk sebagian besar skenario penyerapan. |
Penyimpanan status
Gunakan opsi ini dengan spark.read.format("statestore") atau fungsi bernilai read_statestore tabel untuk membaca data status Streaming Terstruktur. Lihat Baca informasi status Streaming Terstruktur.
| Key | Default | Description |
|---|---|---|
batchId |
ID batch terbaru | Batch target untuk dibaca. Gunakan untuk mengkueri status kueri sebelumnya. Batch harus dikomitmenkan tetapi belum dibersihkan. Nilai yang valid: bilangan bulat non-negatif. |
operatorId |
0 |
Operator target yang akan dibaca. Gunakan saat kueri memiliki beberapa operator stateful. Nilai yang valid: bilangan bulat non-negatif. |
storeName |
DEFAULT |
Nama penyimpanan status target untuk dibaca. Gunakan saat operator stateful memiliki beberapa instans penyimpanan status. Anda harus menentukan atau storeNamejoinSide untuk gabungan stream-stream, tetapi tidak keduanya. Nilai yang valid: string apa pun. |
joinSide |
Tidak | Sisi target untuk dibaca dari untuk gabungan stream-stream. Anda harus menentukan atau storeNamejoinSide untuk gabungan stream-stream, tetapi tidak keduanya. Nilai yang valid: left, right. |
snapshotStartBatchId |
Tidak | ID batch rekam jepret yang akan digunakan sebagai titik awal saat membaca status. Pembaca membangun kembali status dengan memutar ulang perubahan dari rekam jepret ini hingga batchId. Berguna saat rekam jepret rusak. Harus menentukan bersama dengan snapshotPartitionId. Tidak dapat menggunakan dengan readChangeFeed. Mendukung penyimpanan status yang didukung HDFS dan penyimpanan status RocksDB dengan titik pemeriksaan changelog diaktifkan. Tersedia di Databricks Runtime 15.4 LTS ke atas. Nilai yang valid: bilangan bulat non-negatif. |
snapshotPartitionId |
Tidak | Jika ditentukan, kueri hanya membaca partisi ini. Harus menentukan bersama dengan snapshotStartBatchId. Tidak dapat menggunakan dengan readChangeFeed. Tersedia di Databricks Runtime 15.4 LTS ke atas. Nilai yang valid: bilangan bulat non-negatif. |
readChangeFeed |
false |
Ketika true, mengembalikan perubahan status di seluruh rentang batch tertentu antara changeStartBatchId dan changeEndBatchId. Membutuhkan changeStartBatchId. Tidak dapat menggunakan dengan joinSide, batchId, snapshotStartBatchId, atau snapshotPartitionId. Tersedia di Databricks Runtime 16.4 LTS ke atas. Nilai yang valid: true, false.Untuk detailnya, lihat Membaca perubahan status Streaming Terstruktur. |
changeStartBatchId |
Tidak | ID batch awal untuk rentang umpan perubahan. Diperlukan saat readChangeFeed adalah true. Hanya berlaku ketika readChangeFeed diatur ke true. Tersedia di Databricks Runtime 16.4 LTS ke atas. Nilai yang valid: bilangan bulat non-negatif. |
changeEndBatchId |
ID batch terbaru | ID batch akhir untuk rentang umpan perubahan. Harus lebih besar dari atau sama dengan changeStartBatchId. Hanya berlaku ketika readChangeFeed diatur ke true. Tersedia di Databricks Runtime 16.4 LTS ke atas. Nilai yang valid: bilangan bulat non-negatif. |
stateVarName |
Tidak | Nama variabel status yang akan dibaca. Nama variabel status adalah nama unik dari setiap variabel dalam init fungsi yang StatefulProcessor digunakan oleh transformWithState operator. Diperlukan saat Anda menggunakan transformWithState operator. Tersedia di Databricks Runtime 16.4 LTS ke atas. Nilai yang valid: string apa pun. |
readRegisteredTimers |
false |
Ketika true, membaca timer terdaftar yang digunakan oleh transformWithState operator. Hanya berlaku untuk transformWithState operator. Tersedia di Databricks Runtime 16.4 LTS ke atas. Nilai yang valid: true, false. |
flattenCollectionTypes |
true |
Ketika true, meratakan rekaman yang dikembalikan untuk variabel status peta dan daftar. Ketika false, mengembalikan rekaman sebagai Spark SQL Array atau Map. Hanya berlaku untuk transformWithState operator. Tersedia di Databricks Runtime 16.4 LTS ke atas. Nilai yang valid: true, false. |
Teks
| Key | Default | Description |
|---|---|---|
encoding |
UTF-8 |
Nama pengodean pemisah baris dalam file TEKS. Untuk daftar opsi, lihat java.nio.charset.Charset. Konten file tidak terpengaruh oleh opsi ini dan dibaca as-is. |
lineSep |
Tidak ada, yang mencakup \r, \r\n dan \n |
Sebuah string di antara dua catatan TEXT berturut-turut. |
wholeText |
false |
Apakah akan membaca berkas sebagai satu rekaman. |
XML
| Key | Default | Description |
|---|---|---|
rowTag |
Tidak | Tag baris pada file XML untuk diperlakukan sebagai baris. Dalam contoh XML <books> <book><book>...<books>, nilai yang sesuai adalah book. Opsi ini wajib diisi. |
samplingRatio |
1.0 |
Menentukan sebagian kecil baris yang digunakan untuk inferensi skema. Fungsi bawaan XML mengabaikan opsi ini. Nilai yang valid: 0.0 ke 1.0. |
excludeAttribute |
false |
Apakah akan mengecualikan atribut dalam elemen. |
mode |
Tidak | Mode untuk menangani rekaman yang rusak selama penguraian.
PERMISSIVE: Untuk rekaman yang rusak, menempatkan string yang rusak ke dalam bidang yang dikonfigurasi oleh columnNameOfCorruptRecord, dan menetapkan nilai null untuk bidang yang cacat. Untuk menyimpan rekaman yang rusak, Anda bisa mengatur bidang dengan jenis string 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 menambahkan bidang columnNameOfCorruptRecord ke dalam skema output.
DROPMALFORMED: Mengabaikan rekaman yang rusak. Mode ini tidak didukung untuk fungsi bawaan XML.
FAILFAST: Memunculkan pengecualian ketika pengurai menemui rekaman yang rusak. |
inferSchema |
true |
Jika true, mencoba menyimpulkan jenis yang sesuai untuk setiap kolom DataFrame yang dihasilkan. Jika false, semua kolom yang dihasilkan berjenis string . Fungsi bawaan XML mengabaikan opsi ini. |
columnNameOfCorruptRecord |
spark.sql.columnNameOfCorruptRecord |
Memungkinkan penggantian nama bidang baru yang berisi string cacat yang dibuat oleh PERMISSIVE mode. |
attributePrefix |
Tidak | 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. Juga berlaku untuk opsi XML DataFrameWriter. |
valueTag |
_VALUE |
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. Juga berlaku untuk opsi XML DataFrameWriter. |
encoding |
UTF-8 |
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. Juga berlaku untuk opsi XML DataFrameWriter. |
ignoreSurroundingSpaces |
true |
Apakah spasi kosong di sekitar nilai harus dilewati. Data karakter yang hanya berisi spasi kosong diabaikan. |
rowValidationXSDPath |
Tidak | Jalur ke file XSD opsional yang digunakan untuk memvalidasi XML untuk setiap baris satu per satu. Baris yang gagal divalidasi diperlakukan seperti kesalahan penguraian. XSD tidak memengaruhi skema, baik yang disediakan atau disimpulkan. |
ignoreNamespace |
false |
Jika true, awalan namespace pada elemen dan atribut XML diabaikan. Tag <abc:author> dan <def:author>, misalnya, diperlakukan seolah-olah keduanya adalah <author> saja. Namespace-namespace tidak dapat diabaikan pada elemen rowTag, hanya elemen turunannya yang dapat dibaca. Penguraian XML tidak mengenali namespace walaupun false. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
Format string tanda waktu kustom yang mengikuti format pola tanggal dan waktu. Ini berlaku untuk jenis timestamp ini. Juga berlaku untuk opsi XML DataFrameWriter. |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Format string khusus untuk tanda waktu tanpa zona waktu yang mengikuti format pola tanggal dan waktu. Ini berlaku untuk jenis TimestampNTZType. Juga berlaku untuk opsi XML DataFrameWriter. |
dateFormat |
yyyy-MM-dd |
String format tanggal kustom yang mengikuti format pola tanggal dan waktu. Ini berlaku untuk jenis tanggal. Juga berlaku untuk opsi XML DataFrameWriter. |
locale |
en-US |
Mengatur lokal sebagai tag bahasa dalam format IETF BCP 47. Misalnya, locale digunakan saat mengurai tanggal dan tanda waktu. |
nullValue |
tali null |
Mengatur representasi string dari nilai null. Ketika ini adalah null, pengurai tidak menulis atribut dan elemen untuk bidang. Juga berlaku untuk opsi XML DataFrameWriter. |
readerCaseSensitive |
true |
Menentukan perilaku sensitivitas kasus saat rescuedDataColumn diaktifkan. Jika true, selamatkan kolom data yang namanya berbeda menurut kasus dari skema. Saat false, baca data dengan cara yang tidak peka huruf besar/kecil. |
rescuedDataColumn |
Tidak | 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?.
COPY INTO (warisan) tidak mendukung kolom data yang diselamatkan karena Anda tidak dapat mengatur skema secara manual menggunakan COPY INTO. Databricks merekomendasikan penggunaan Auto Loader untuk sebagian besar skenario penyerapan. |
singleVariantColumn |
none |
Menentukan nama untuk kolom dengan satu varian. Jika opsi ini ditentukan untuk dibaca, uraikan seluruh catatan XML ke dalam satu kolom Varian dengan nilai string opsi yang diberikan sebagai nama kolom. Jika opsi ini disediakan untuk menulis, tulis nilai kolom Varian tunggal ke file XML. Juga berlaku untuk opsi XML DataFrameWriter. |
useLegacyXMLParser |
true |
Apakah akan menggunakan pengurai XML warisan. Parser warisan memiliki validasi yang kurang ketat untuk konten cacat tetapi kurang efisien memori. Atur ke false untuk memilih pengurai default yang lebih ketat. |
wildcardColName |
xs_any |
Nama kolom yang digunakan untuk mengambil elemen XML yang cocok dengan elemen skema wildcard (xs:any). Tidak dapat digunakan bersama dengan rescuedDataColumn. |
Opsi DataStreamReader
Gunakan opsi ini dengan DataStreamReader.option() untuk mengonfigurasi pembacaan streaming dari tabel Delta Lake dan sumber berbasis file lainnya.
Untuk opsi format file (JSON, CSV, Parquet, dan lainnya), lihat Opsi DataFrameReader.
Untuk opsi Auto Loader (cloudFiles.*), lihat Auto Loader.
Example
Contoh berikut diatur maxFilesPerTrigger ke 10 untuk aliran tabel Delta Lake:
Python
df = spark.readStream.format("delta").option("maxFilesPerTrigger", 10).load("/path/to/delta-table")
Scala
val df = spark.readStream.format("delta").option("maxFilesPerTrigger", "10").load("/path/to/delta-table")
Umum
Opsi berikut berlaku untuk tabel Delta Lake dan sumber streaming berbasis file lainnya.
| Key | Default | Description |
|---|---|---|
cleanSource |
off |
Cara menangani file sumber setelah diproses oleh aliran. Nilai yang valid: off (tidak ada tindakan), delete (hapus file sumber secara permanen), archive (pindah ke sourceArchiveDir). Ketika diatur ke archive, sourceArchiveDir juga harus diatur. Tidak berlaku untuk streaming tabel Delta Lake. |
fileNameOnly |
false |
Apakah akan mengidentifikasi file yang sudah diproses dengan nama file saja daripada dengan jalur lengkap. Ketika true, file di jalur yang berbeda dengan nama file yang sama diperlakukan sebagai file yang sama dan tidak diolah ulang. Tidak berlaku untuk streaming tabel Delta Lake. |
latestFirst |
false |
Apakah akan memproses file yang terakhir dimodifikasi terlebih dahulu dalam setiap mikro-batch. Berguna ketika Anda ingin memproses data terbaru secepat mungkin. Ketika true dan maxFilesPerTrigger atau maxBytesPerTrigger diatur, maxFileAge diabaikan. Tidak berlaku untuk streaming tabel Delta Lake. |
maxBytesPerTrigger |
Tidak | Maksimum lunak untuk jumlah data yang diproses untuk setiap mikro-batch. Batch dapat memproses lebih dari batas jika unit input terkecil melebihinya. Ketika digunakan bersama dengan maxFilesPerTrigger, mikro-batch memproses data hingga salah satu batas tercapai terlebih dahulu. Nilai yang valid: bilangan bulat positif.Untuk Auto Loader, gunakan cloudFiles.maxBytesPerTrigger sebagai gantinya. Lihat Umum. |
maxCachedFiles |
10000 |
Jumlah maksimum file yang tidak diolah ke cache untuk batch mikro berikutnya. Atur ke 0 untuk menonaktifkan penembolokan. Tingkatkan nilai ini ketika direktori sumber berisi banyak file baru untuk setiap pemicu. Tidak berlaku untuk streaming tabel Delta Lake. Nilai yang valid: bilangan bulat positif atau 0. |
maxFileAge |
7d |
Usia maksimum file yang dipertimbangkan untuk diproses, relatif terhadap tanda waktu file yang terakhir dimodifikasi daripada waktu sistem saat ini. File yang lebih lama dari ambang ini diabaikan. Menerima string durasi seperti 7d atau 4h. Diabaikan ketika latestFirst dan maxFilesPerTriggertrue atau maxBytesPerTrigger diatur. Tidak berlaku untuk streaming tabel Delta Lake. |
maxFilesPerTrigger |
1000 untuk Delta Lake dan Auto Loader. Tidak ada maksimum untuk sumber berbasis file lainnya. |
Batas atas untuk jumlah file baru yang diproses di setiap mikro-batch. Ketika digunakan bersama dengan maxBytesPerTrigger, mikro-batch memproses data hingga salah satu batas tercapai terlebih dahulu. Nilai yang valid: bilangan bulat positif.Untuk Auto Loader, gunakan cloudFiles.maxFilesPerTrigger sebagai gantinya. Lihat Umum. |
sourceArchiveDir |
Tidak | Jalur ke direktori arsip saat cleanSource diatur ke archive. File sumber dipindahkan ke jalur ini setelah diproses, mempertahankan struktur direktori relatifnya. Tidak berlaku untuk streaming tabel Delta Lake. |
Pemuat Otomatis
Gunakan opsi ini dengan cloudFiles sumber untuk mengonfigurasi Auto Loader untuk penyerapan streaming dari penyimpanan cloud. Opsi khusus untuk cloudFiles sumber diawali dengan cloudFiles untuk menyimpannya di namespace terpisah dari opsi sumber Streaming Terstruktur lainnya.
Umum
| Key | Default | Description |
|---|---|---|
cloudFiles.allowOverwrites |
false |
Apakah mengizinkan perubahan file direktori input mengganti data yang ada. Untuk peringatan konfigurasi, lihat Apakah Auto Loader memproses file lagi saat file ditambahkan atau ditimpa?. |
cloudFiles.backfillInterval |
Tidak | Auto Loader dapat memicu backfill asinkron pada interval tertentu. Misalnya 1 day untuk mengisi kekosongan setiap hari atau 1 week untuk mengisi kekosongan setiap minggu. Untuk informasi selengkapnya, lihat Melakukan pengisian kembali secara teratur menggunakan cloudFiles.backfillInterval.Jangan gunakan ketika cloudFiles.useManagedFileEvents diatur ke true. |
cloudFiles.cleanSource |
OFF |
Apakah akan menghapus file yang diproses secara otomatis dari direktori input. Ketika diatur ke OFF (default), tidak ada file yang dihapus.Saat diatur ke DELETE, Auto Loader secara otomatis menghapus file 30 hari setelah diproses. Untuk melakukan ini, Auto Loader harus memiliki izin tulis ke direktori sumber.Saat diatur ke MOVE, Auto Loader secara otomatis memindahkan file ke lokasi yang ditentukan dalam 30 hari setelah diproses cloudFiles.cleanSource.moveDestination . Untuk melakukan ini, Auto Loader harus memiliki izin tulis ke direktori sumber serta ke lokasi pemindahan.File dianggap diproses ketika memiliki nilai non-null untuk commit_time dalam hasil cloud_files_state fungsi bernilai tabel. Lihat fungsi bernilai tabel cloud_files_state. Penantian tambahan 30 hari setelah pemrosesan dapat dikonfigurasi menggunakan cloudFiles.cleanSource.retentionDuration.Tinjau pertimbangan berikut sebelum mengaktifkan cloudFiles.cleanSource:
Tersedia di Databricks Runtime 16.4 ke atas. |
cloudFiles.cleanSource.retentionDuration |
30 days |
Jumlah waktu untuk menunggu sebelum file yang diproses menjadi kandidat pengarsipan dengan cleanSource. Harus lebih besar dari 7 hari untuk DELETE. Tidak ada batasan minimum untuk MOVE.Nilainya adalah string CalendarInterval . Misalnya, "14 days", , "30 days""2 weeks", atau "1 month".Tersedia di Databricks Runtime 16.4 ke atas. |
cloudFiles.cleanSource.moveDestination |
Tidak | Jalur untuk mengarsipkan file yang telah diproses ke lokasi cloudFiles.cleanSource ketika cloudFiles.cleanSource diatur ke . Ini bisa menjadi jalur penyimpanan cloud atau jalur volume Katalog Unity (misalnya, /Volumes/my_catalog/my_schema/my_volume/archive/).Lokasi pemindahan harus:
Auto Loader harus memiliki izin tulis ke direktori ini. Tersedia di Databricks Runtime 16.4 ke atas. |
cloudFiles.format |
Tidak ada (opsi yang diperlukan) |
Format file data di jalur sumber. Nilai yang valid meliputi:
|
cloudFiles.includeExistingFiles |
true |
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 streaming untuk pertama kalinya. Mengubah opsi ini setelah memulai ulang aliran tidak berpengaruh. |
cloudFiles.inferColumnTypes |
false |
Apakah akan menyimpulkan tipe kolom yang tepat saat memanfaatkan inferensi skema. Secara default, kolom disimpulkan sebagai string saat menyimpulkan himpunan data JSON dan CSV. Lihat inferensi skema untuk detail selengkapnya. |
cloudFiles.maxBytesPerTrigger |
Tidak | 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 nilai maksimum yang bersifat fleksibel. Jika Anda memiliki file berukuran masing-masing 3 GB, Azure Databricks memproses 12 GB dalam mikro-batch. Ketika digunakan bersama dengan cloudFiles.maxFilesPerTrigger, Azure Databricks menggunakan hingga batas bawah cloudFiles.maxFilesPerTrigger atau cloudFiles.maxBytesPerTrigger, tergantung mana yang tercapai lebih dulu. Opsi ini tidak berpengaruh saat digunakan dengan Trigger.Once() (Trigger.Once() tidak digunakan lagi).Di Databricks Runtime 18.0 ke atas, opsi ini dikonfigurasi secara dinamis dan tidak perlu diatur secara manual. |
cloudFiles.maxFileAge |
Tidak | Berapa lama peristiwa file dilacak untuk tujuan deduplikasi. Databricks tidak merekomendasikan menyetel parameter ini kecuali Anda mengimpor data dengan jumlah jutaan file per jam. Lihat bagian tentang Pelacakan peristiwa file untuk detail selengkapnya. Penyetelan cloudFiles.maxFileAge terlalu agresif dapat menyebabkan masalah kualitas data seperti penyerapan duplikat atau file yang hilang. Oleh karena itu, Databricks merekomendasikan pengaturan konservatif untuk cloudFiles.maxFileAge, seperti 90 hari, yang mirip dengan rekomendasi solusi penyerapan data yang sebanding. |
cloudFiles.maxFilesPerTrigger |
1000 |
Jumlah maksimum file baru yang akan diproses di setiap pemicu. Ketika digunakan bersama dengan cloudFiles.maxBytesPerTrigger, Azure Databricks menggunakan hingga batas bawah cloudFiles.maxFilesPerTrigger atau cloudFiles.maxBytesPerTrigger, tergantung mana yang tercapai lebih dulu. Opsi ini tidak berpengaruh ketika digunakan dengan Trigger.Once() (tidak digunakan lagi).Di Databricks Runtime 18.0 ke atas, opsi ini dikonfigurasi secara dinamis dan tidak perlu diatur secara manual. |
cloudFiles.partitionColumns |
Tidak | 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 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.csvMenentukan cloudFiles.partitionColumns sebagai year,month,day menghasilkan year=2022 untuk file1.csv, tetapi kolom month dan day adalah null.month dan day diurai dengan benar untuk file2.csv dan file3.csv. |
cloudFiles.schemaEvolutionMode |
addNewColumns ketika skema tidak disediakan, none jika tidak |
Mode untuk memperbarui skema ketika kolom baru ditemukan dalam data. Secara default, kolom disimpulkan sebagai string saat menyimpulkan himpunan data JSON. Lihat evolusi skema untuk detail selengkapnya. |
cloudFiles.schemaHints |
Tidak | Informasi skema yang Anda berikan kepada Auto Loader selama inferensi skema. Lihat hint skema untuk detail selengkapnya. |
cloudFiles.schemaLocation |
Tidak ada (diperlukan untuk menyimpulkan skema) | Lokasi untuk menyimpan skema yang disimpulkan dan perubahan selanjutnya. Lihat inferensi skema untuk detail selengkapnya. |
cloudFiles.useStrictGlobber |
false |
Apakah akan menggunakan globber ketat yang sesuai dengan perilaku pengglobberan default dari sumber-sumber file lain pada Apache Spark. Lihat Pola pemuatan data umum untuk detail selengkapnya. Tersedia di Databricks Runtime 12.2 LTS ke atas. |
cloudFiles.validateOptions |
true |
Apakah akan memvalidasi opsi Auto Loader dan menghasilkan kesalahan jika ada opsi yang tidak diketahui atau tidak konsisten. |
Daftar direktori
| Key | Default | Description |
|---|---|---|
cloudFiles.useIncrementalListing (tidak digunakan lagi) |
auto pada Databricks Runtime 17.2 ke bawah, false pada Databricks Runtime 17.3 ke atas |
Fitur ini sudah tidak digunakan. Databricks merekomendasikan penggunaan mode pemberitahuan file dengan peristiwa file dibandingkan cloudFiles.useIncrementalListing.Apakah akan menggunakan daftar inkremental daripada daftar lengkap dalam mode daftar direktori. Secara default, Auto Loader melakukan upaya terbaik untuk secara otomatis mendeteksi apakah direktori tertentu berlaku untuk daftar bertambah bertahap. Anda dapat secara eksplisit menggunakan daftar bertambah atau menggunakan daftar direktori lengkap dengan mengaturnya sebagai true atau false.Mengaktifkan daftar bertahap secara tidak benar pada direktori yang tidak diurutkan secara leksikal dapat mencegah Auto Loader menemukan file baru. Bekerja dengan Azure Data Lake Storage ( abfss://), S3 (s3://), dan GCS (gs://).Tersedia di Databricks Runtime 9.1 LTS ke atas. Nilai yang tersedia: auto, true, false |
Pemberitahuan file
Untuk informasi tentang mengonfigurasi mode pemberitahuan file, termasuk izin cloud yang diperlukan, instruksi penyiapan, dan metode autentikasi, lihat Mengonfigurasi aliran Auto Loader dalam mode pemberitahuan file.
| Key | Default | Description |
|---|---|---|
cloudFiles.fetchParallelism |
1 |
Jumlah thread yang akan digunakan saat mengambil pesan dari layanan antrean. Jangan gunakan ketika cloudFiles.useManagedFileEvents diatur ke true. |
cloudFiles.pathRewrites |
Tidak | Diperlukan hanya jika Anda menentukan queueUrl yang menerima pemberitahuan file dari beberapa wadah S3 dan Anda ingin menggunakan titik pemasangan yang dikonfigurasi untuk mengakses data dalam kontainer ini. Gunakan opsi ini untuk mengubah awalan jalur bucket/key dengan titik pemasangan. Hanya awalan yang dapat ditulis ulang. Misalnya, untuk konfigurasi {"<databricks-mounted-bucket>/path": "dbfs:/mnt/data-warehouse"}, jalur s3://<databricks-mounted-bucket>/path/2017/08/fileA.json ditulis ulang ke dbfs:/mnt/data-warehouse/2017/08/fileA.json.Jangan gunakan ketika cloudFiles.useManagedFileEvents diatur ke true. |
cloudFiles.resourceTag |
Tidak | Serangkaian pasangan tag nilai kunci untuk membantu mengaitkan dan mengidentifikasi sumber daya terkait, misalnya:cloudFiles.option("cloudFiles.resourceTag.myFirstKey", "myFirstValue") .option("cloudFiles.resourceTag.mySecondKey", "mySecondValue")Untuk informasi selengkapnya tentang AWS, lihat tag alokasi biaya Amazon SQS dan Mengonfigurasi tag untuk topik Amazon SNS. (1) Untuk informasi selengkapnya tentang Azure, lihat Penamaan Antrean dan Metadata serta cakupan properties.labels di Langganan Peristiwa. Auto Loader menyimpan pasangan tag nilai kunci ini di JSON sebagai label.
(1)Untuk informasi selengkapnya tentang GCP, lihat Melaporkan penggunaan dengan label. (1) Jangan gunakan ketika cloudFiles.useManagedFileEvents diatur ke true. Sebagai gantinya, atur tag sumber daya menggunakan konsol penyedia cloud. |
cloudFiles.useManagedFileEvents |
false |
Saat diatur ke true, Auto Loader menggunakan layanan peristiwa file untuk menemukan file di lokasi eksternal Anda. Anda dapat menggunakan opsi ini hanya jika jalur beban berada di lokasi eksternal dengan peristiwa file diaktifkan. Lihat Gunakan mode pemberitahuan file dengan peristiwa file.Peristiwa file menyediakan performa tingkat pemberitahuan dalam penemuan file, karena Auto Loader dapat menemukan file baru setelah eksekusi terakhir. Tidak seperti daftar direktori, proses ini tidak perlu mencantumkan semua file dalam direktori. Ada beberapa situasi ketika Auto Loader menggunakan daftar direktori meskipun opsi peristiwa file diaktifkan:
Lihat Kapan Auto Loader dengan peristiwa file menggunakan daftar direktori? untuk daftar situasi yang komprehensif saat Auto Loader menggunakan daftar direktori dengan opsi ini. Tersedia di Databricks Runtime 14.3 LTS ke atas. |
cloudFiles.listOnStart |
false |
Saat diatur ke true, Auto Loader melakukan daftar direktori lengkap saat streaming dimulai, alih-alih memulai dengan token kelanjutan di titik pemeriksaan. Gunakan opsi ini untuk memulihkan dari kesalahan, seperti CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN. Lihat Bagaimana cara memulihkan dari CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN kesalahan?. |
cloudFiles.useNotifications |
false |
Apakah akan menggunakan mode pemberitahuan file untuk menentukan ketika ada file baru. Jika false, gunakan mode daftar direktori. Lihat Bandingkan mode deteksi file Auto Loader.Jangan gunakan ketika cloudFiles.useManagedFileEvents diatur ke true. |
(1) Auto Loader menambahkan pasangan tag nilai kunci berikut secara default dengan upaya terbaik:
-
vendor:Databricks -
path: Lokasi dari tempat data dimuat. Tidak tersedia di GCP karena batasan pelabelan. -
checkpointLocation: Lokasi titik pemeriksaan aliran. Tidak tersedia di GCP karena batasan pelabelan. -
streamId: Pengidentifikasi unik global untuk aliran ini.
Databricks mencadangkan nama kunci ini, dan Anda tidak dapat menimpa nilainya.
Khusus cloud
Auto Loader menyediakan opsi untuk mengonfigurasi infrastruktur cloud untuk mode pemberitahuan file. Untuk izin cloud dan instruksi penyiapan yang diperlukan, lihat Mengonfigurasi aliran Auto Loader dalam mode pemberitahuan file.
AWS
Berikan opsi berikut hanya jika Anda memilih cloudFiles.useNotifications = true dan Anda ingin Auto Loader menyiapkan layanan pemberitahuan untuk Anda:
| Key | Default | Description |
|---|---|---|
cloudFiles.region |
Wilayah instans EC2 | Wilayah tempat wadah S3 sumber berada dan tempat Anda ingin membuat layanan AWS SNS dan SQS. |
| Key | Default | Description |
|---|---|---|
cloudFiles.restrictNotificationSetupToSameAWSAccountId |
false |
Hanya izinkan notifikasi acara dari bucket AWS S3 di akun yang sama dengan topik SNS. Jika true, Auto Loader hanya menerima pemberitahuan peristiwa dari wadah AWS S3 di akun yang sama dengan topik SNS. Ketika false, kebijakan akses tidak membatasi penyiapan bucket lintas akun dan topik SNS. Ini berguna ketika topik SNS dan jalur bucket dikaitkan dengan akun yang berbeda.Tersedia di Databricks Runtime 17.2 ke atas. |
Berikan opsi berikut hanya jika Anda memilih cloudFiles.useNotifications = true dan Anda ingin Auto Loader menggunakan antrean yang telah Anda siapkan:
| Key | Default | Description |
|---|---|---|
cloudFiles.queueUrl |
Tidak | URL untuk antrian SQS. Jika disediakan, Auto Loader langsung mengonsumsi event dari antrean ini daripada harus menyiapkan layanan AWS SNS dan SQS sendiri. |
Opsi autentikasi AWS
Berikan opsi autentikasi berikut untuk menggunakan kredensial layanan Databricks:
| Key | Default | Description |
|---|---|---|
databricks.serviceCredential |
Tidak | Nama kredensial layanan untuk Databricks Anda. Tersedia di Databricks Runtime 16.1 ke atas. |
Ketika kredensial layanan Databricks atau peran IAM tidak tersedia, Anda dapat menyediakan opsi autentikasi berikut sebagai gantinya:
| Key | Default | Description |
|---|---|---|
cloudFiles.awsAccessKey |
Tidak | ID kunci akses AWS untuk pengguna. Harus dilengkapi dengan cloudFiles.awsSecretKey. |
cloudFiles.awsSecretKey |
Tidak | Kunci akses rahasia AWS untuk pengguna. Harus dilengkapi dengan cloudFiles.awsAccessKey. |
cloudFiles.roleArn |
Tidak | ARN dari peran IAM untuk digunakan, jika diperlukan. Peran dapat diasumsikan dari profil instans kluster Anda atau dengan memberikan kredensial dengan cloudFiles.awsAccessKey dan cloudFiles.awsSecretKey. |
cloudFiles.roleExternalId |
Tidak | Pengidentifikasi yang perlu disediakan saat mengasumsikan peran menggunakan cloudFiles.roleArn. |
cloudFiles.roleSessionName |
Tidak | Nama sesi opsional untuk digunakan sambil mengasumsikkan peran menggunakan cloudFiles.roleArn. |
cloudFiles.stsEndpoint |
Tidak | Titik akhir opsional yang digunakan untuk mengakses AWS STS saat mengambil peran menggunakan cloudFiles.roleArn. |
Azure
Anda harus memberikan nilai untuk semua opsi berikut jika Anda menentukan cloudFiles.useNotifications = true dan Anda ingin Auto Loader menyiapkan layanan notifikasi untuk Anda:
| Key | Default | Description |
|---|---|---|
cloudFiles.resourceGroup |
Tidak | Grup Sumber Daya Azure tempat akun penyimpanan dibuat. |
cloudFiles.subscriptionId |
Tidak | ID Langganan Azure tempat grup sumber daya dibuat. |
databricks.serviceCredential |
Tidak | Nama kredensial layanan untuk Databricks Anda. Tersedia di Databricks Runtime 16.1 ke atas. |
Jika kredensial layanan Databricks tidak tersedia, Anda dapat menyediakan opsi autentikasi berikut:
| Key | Default | Description |
|---|---|---|
cloudFiles.clientId |
Tidak | ID klien atau ID aplikasi dari perwakilan layanan. |
cloudFiles.clientSecret |
Tidak | Rahasia klien dari prinsipal layanan. |
cloudFiles.connectionString |
Tidak | String koneksi untuk akun penyimpanan, berdasarkan kunci akses akun atau tanda tangan akses bersama (SAS). |
cloudFiles.tenantId |
Tidak | ID Penyewa Azure tempat perwakilan layanan dibuat. |
Berikan opsi berikut hanya jika Anda mengatur cloudFiles.useNotifications = true dan Anda ingin Auto Loader menggunakan antrean yang sudah ada:
| Key | Default | Description |
|---|---|---|
cloudFiles.queueName |
Tidak | Nama dari antrean Azure. Jika disediakan, sumber file cloud langsung memproses kejadian dari antrean ini, alih-alih menyiapkan layanan Azure Event Grid dan Queue Storage miliknya sendiri. Dalam hal ini, databricks.serviceCredential atau cloudFiles.connectionString Anda hanya memerlukan izin membaca pada antrean. |
GCP
Auto Loader dapat secara otomatis menyiapkan layanan pemberitahuan untuk Anda dengan memanfaatkan kredensial layanan Databricks. Akun layanan yang dibuat dengan kredensial layanan Databricks akan memerlukan izin yang ditentukan dalam Mengonfigurasi aliran Auto Loader dalam mode pemberitahuan file.
| Key | Default | Description |
|---|---|---|
cloudFiles.projectId |
Tidak | ID proyek tempat wadah GCS berada. Langganan Google Cloud Pub/Sub juga dibuat dalam proyek ini. |
databricks.serviceCredential |
Tidak | Nama kredensial layanan untuk Databricks Anda. Tersedia di Databricks Runtime 16.1 ke atas. |
Jika kredensial layanan Databricks tidak tersedia, Anda dapat menggunakan Akun Layanan Google secara langsung. Anda dapat mengonfigurasi kluster untuk mengasumsikan akun layanan dengan mengikuti penyiapan layanan Google atau memberikan opsi autentikasi berikut secara langsung:
| Key | Default | Description |
|---|---|---|
cloudFiles.client |
Tidak | ID klien akun Layanan Google. |
cloudFiles.clientEmail |
Tidak | Email akun Google Service. |
cloudFiles.privateKey |
Tidak | Kunci privat yang dihasilkan untuk Akun Layanan Google. |
cloudFiles.privateKeyId |
Tidak | ID kunci privat yang dihasilkan untuk Akun Layanan Google. |
Berikan opsi berikut hanya jika Anda memilih cloudFiles.useNotifications = true dan Anda ingin Auto Loader menggunakan antrean yang telah Anda siapkan:
| Key | Default | Description |
|---|---|---|
cloudFiles.subscription |
Tidak | Nama langganan Google Cloud Pub/Sub. Jika disediakan, sumber berkas awan mengambil acara dari antrian ini alih-alih menyiapkan Pemberitahuan GCS dan layanan Google Cloud Pub/Sub sendiri. |
Danau Delta
Opsi berikut berlaku saat membaca dari tabel Delta Lake menggunakan spark.readStream.
| Key | Default | Description |
|---|---|---|
allowSourceColumnDrop |
Tidak | Atur ke nomor versi tabel Delta atau "always" untuk memungkinkan aliran dilanjutkan setelah kolom dihilangkan dari skema tabel sumber. Saat diatur ke nomor versi, mengakui semua perubahan skema hingga versi tersebut. Membutuhkan schemaTrackingLocation. Lihat mengganti nama dan menghapus kolom dengan menggunakan pemetaan kolom Delta Lake. |
allowSourceColumnRename |
Tidak | Atur ke nomor versi tabel Delta atau "always" untuk memungkinkan aliran dilanjutkan setelah kolom diganti namanya dalam tabel sumber. Saat diatur ke nomor versi, mengakui semua perubahan skema hingga versi tersebut. Membutuhkan schemaTrackingLocation. Lihat mengganti nama dan menghapus kolom dengan menggunakan pemetaan kolom Delta Lake. |
allowSourceColumnTypeChange |
Tidak | Atur ke nomor versi tabel Delta atau "always" untuk memungkinkan aliran dilanjutkan setelah jenis kolom diubah dalam tabel sumber. Saat diatur ke nomor versi, mengakui semua perubahan skema hingga versi tersebut. Membutuhkan schemaTrackingLocation. Lihat Pelebaran tipe. |
excludeRegex |
Tidak | Pola ekspresi reguler. File yang jalurnya cocok dengan pola dikecualikan dari bacaan streaming. Berguna untuk memfilter file yang tidak sesuai dengan konvensi penamaan yang diharapkan. |
failOnDataLoss |
true |
Apakah akan gagal kueri streaming jika data sumber telah dihapus karena retensi log (logRetentionDuration). Atur ke false untuk melewati data yang hilang dan melanjutkan pemrosesan. Lihat Mengonfigurasi retensi data untuk kueri perjalanan lintas waktu. |
ignoreChanges (tidak digunakan lagi) |
false |
Tersedia di Databricks Runtime 11.3 LTS dan yang lebih rendah. Memancarkan kembali file data yang ditulis ulang setelah operasi modifikasi seperti UPDATE, , MERGE INTODELETE, atau OVERWRITE. Baris yang tidak berubah dapat dipancarkan bersama baris baru, sehingga konsumen hilir harus menangani duplikat. Penghapusan data tidak diteruskan ke sistem hilir. Digantikan oleh skipChangeCommits dalam Databricks Runtime 12.2 LTS ke atas. |
ignoreDeletes (tidak digunakan lagi) |
false |
Mengabaikan transaksi yang menghapus data pada batas partisi (hanya penurunan partisi penuh). Tidak menangani penghapusan non-partisi, pembaruan, atau modifikasi lainnya. Gunakan skipChangeCommits sebagai gantinya. |
readChangeFeed atau readChangeData |
false |
Apakah akan mengaktifkan pembacaan umpan data perubahan untuk kueri streaming. Saat diaktifkan, aliran memancarkan perubahan tingkat baris (menyisipkan, memperbarui, dan menghapus) dengan kolom metadata tambahan. Lihat Gunakan umpan data perubahan Delta Lake pada Azure Databricks. |
schemaTrackingLocation |
Tidak | Jalur ke direktori tempat Delta Lake melacak perubahan skema untuk pembacaan streaming. Diperlukan saat streaming dari tabel dengan pemetaan kolom diaktifkan dan menggunakan allowSourceColumn* opsi untuk menangani evolusi skema. Harus berada dalam checkpointLocation kueri streaming. Lihat mengganti nama dan menghapus kolom dengan menggunakan pemetaan kolom Delta Lake. |
skipChangeCommits |
false |
Mengabaikan transaksi yang menghapus atau memodifikasi rekaman dan proses yang ada hanya menambahkan. Databricks merekomendasikan opsi ini untuk sebagian besar beban kerja yang tidak menggunakan umpan data perubahan. Tersedia di Databricks Runtime 12.2 LTS ke atas. Lihat Melewati penerapan perubahan hulu dengan skipChangeCommits. |
startingTimestamp |
Versi terbaru tersedia | Tanda waktu untuk mulai membaca. Aliran membaca semua perubahan tabel yang dilakukan pada atau setelah tanda waktu yang ditentukan. Jika tanda waktu mendahului semua penerapan tabel yang tersedia, aliran dimulai dari penerapan paling awal yang tersedia. Tidak dapat digunakan bersama dengan startingVersion. Diabaikan jika titik pemeriksaan streaming sudah ada.Nilai yang valid: string tanda waktu seperti "2019-01-01T00:00:00.000Z" atau string tanggal seperti "2019-01-01". |
startingVersion |
Versi terbaru tersedia | Versi tabel Delta untuk mulai membaca. Aliran membaca semua perubahan yang dilakukan pada atau setelah versi yang ditentukan. Tentukan "latest" untuk memulai dari hanya perubahan terbaru. Tidak dapat digunakan bersama dengan startingTimestamp. Diabaikan jika titik pemeriksaan streaming sudah ada. Lihat Bekerja dengan riwayat tabel. |
withEventTimeOrder |
false |
Membagi rekam jepret tabel awal menjadi wadah waktu peristiwa untuk mencegah rekaman ditandai sebagai peristiwa terlambat dan dihilangkan dalam kueri stateful dengan marka air. Tidak dapat diubah setelah pemrosesan rekam jepret awal dimulai tanpa menghapus titik pemeriksaan. Tersedia di Databricks Runtime 11.3 LTS ke atas. Lihat Memproses rekam jepret awal tanpa menghilangkan data. |
Kafka
Gunakan opsi ini dengan atau spark.readStream.format("kafka")spark.read.format("kafka"):
| Key | Default | Description |
|---|---|---|
assign |
Tidak | Partisi tertentu untuk dikonsumsi. Anda harus menentukan tepat salah subscribesatu opsi , subscribePattern, atau assign . Nilai yang valid: string JSON, seperti {"topicA":[0,1],"topicB":[2,4]}. |
failOnDataLoss |
true |
Apakah akan menggagalkan kueri jika data mungkin hilang, misalnya, karena topik yang dihapus atau pemotongan offset. Atur ke false untuk melewati data yang hilang dan melanjutkan. Nilai yang valid: true, false.Databricks memperkirakan secara konservatif apakah data mungkin telah hilang. Namun, ini dapat menyebabkan alarm palsu. |
fetchoffset.numretries |
3 |
Jumlah percobaan ulang saat mengambil offset Kafka gagal. Nilai yang valid: bilangan bulat non-negatif. |
fetchoffset.retryintervalms |
1000 |
Interval dalam milidetik antara percobaan ulang pengambilan offset. Nilai yang valid: bilangan bulat non-negatif. |
groupIdPrefix |
spark-kafka-source (streaming), spark-kafka-relation (batch) |
Awalan yang disesuaikan untuk digunakan untuk ID grup konsumen Kafka yang dihasilkan secara otomatis. Jika kafka.group.id diatur secara eksplisit, konektor mengabaikan opsi ini. Nilai yang valid: string apa pun. |
includeHeaders |
false |
Apakah akan menyertakan header pesan Kafka sebagai kolom dalam output. Nilai yang valid: true, false. |
kafkaconsumer.polltimeoutms |
Tidak | Batas waktu dalam milidetik untuk panggilan konsumen poll() Kafka. Nilai yang valid: bilangan bulat positif. |
kafka.bootstrap.servers |
Tidak | Daftar alamat host:port yang dipisahkan koma untuk broker Kafka. Mengatur properti klien bootstrap.servers Kafka.Jika Anda menemukan tidak ada data dari Kafka, periksa daftar alamat broker ini untuk alamat yang salah. Jika daftar alamat broker salah, mungkin tidak ada kesalahan. Klien Kafka mengasumsikan broker akan tersedia pada akhirnya dan mencoba kembali selamanya ketika mereka menerima kesalahan jaringan. |
maxRecordsPerPartition |
Tidak | Jumlah maksimum rekaman untuk setiap partisi Spark. Saat diatur, konektor membagi partisi Kafka sehingga setiap partisi Spark membaca paling banyak rekaman sebanyak ini. Nilai yang valid: bilangan bulat positif. Anda juga dapat menggunakan opsi ini dengan minPartitions. Saat kedua opsi diatur, Spark menggunakan opsi mana pun yang menghasilkan lebih banyak partisi. |
minPartitions |
Tidak | Jumlah minimum partisi Spark untuk dibaca dari Kafka. Ketika diatur, konektor membagi partisi Kafka besar untuk meningkatkan paralelisme. Saat tidak diatur, Spark membuat satu partisi untuk setiap partisi topik Kafka. Berguna untuk menangani ke condong data atau beban puncak. Nilai yang valid: bilangan bulat positif. Opsi ini menginisialisasi ulang konsumen Kafka untuk setiap pemicu, yang mungkin memengaruhi performa dengan SSL. |
startingOffsets |
latest (streaming), earliest (batch) |
Offset tempat kueri memulai bacaan. Nilai yang valid: earliest, latest, atau string offset JSON untuk setiap partisi seperti {"topicA":{"0":23,"1":-2}}. Dalam string JSON, -1 adalah offset terbaru.
-2 adalah offset paling awal.Untuk kueri streaming, opsi ini hanya berlaku saat kueri baru dimulai. Kueri yang dilanjutkan selalu menggunakan titik pemeriksaan. Selama kueri, partisi baru mulai membaca di offset paling awal. Untuk kueri batch, latest tidak diperbolehkan. |
startingOffsetsByTimestamp |
Tidak | Daftar memulai offset untuk setiap partisi, ditentukan sebagai tanda waktu dalam milidetik. Ketika tidak ada offset untuk tanda waktu, perilaku kueri ditentukan oleh startingOffsetsByTimestampStrategy. Nilai yang valid: string tanda waktu JSON untuk setiap partisi, seperti {"topicA":{"0":1000,"1":2000}}.Untuk kueri streaming, opsi ini hanya berlaku saat kueri baru dimulai. Kueri yang dilanjutkan selalu menggunakan titik pemeriksaan. Selama kueri, partisi baru mulai membaca di offset paling awal. |
startingOffsetsByTimestampStrategy |
error |
Strategi yang digunakan ketika tidak ada offset yang ditemukan untuk tanda waktu yang ditentukan di startingOffsetsByTimestamp atau startingTimestamp. Nilai yang valid: error (menimbulkan pengecualian), latest (menggunakan offset terbaru yang tersedia). |
startingTimestamp |
Tidak | Tanda waktu mulai global dalam milidetik yang berlaku untuk semua partisi. Ketika tidak ada offset untuk tanda waktu, perilaku dikendalikan oleh startingOffsetsByTimestampStrategy. Nilai yang valid: bilangan bulat non-negatif. |
subscribe |
Tidak | Topik untuk berlangganan. Anda harus menentukan tepat salah subscribesatu opsi , subscribePattern, atau assign . Nilai yang valid: daftar nama topik yang dipisahkan koma. |
subscribePattern |
Tidak | Pola yang digunakan untuk berlangganan topik. Anda harus menentukan tepat salah subscribesatu opsi , subscribePattern, atau assign . Contohnya, topic.*. Nilai yang valid: string regex Java apa pun. |
Opsi berikut hanya berlaku untuk streaming bacaan dengan spark.readStream.format("kafka"):
| Key | Default | Description |
|---|---|---|
bytesEstimateWindowLength |
300s |
Jendela waktu yang digunakan untuk memperkirakan byte yang estimatedTotalBytesBehindLatest tersisa untuk metrik. Nilai yang valid: string durasi seperti 10m atau 600s. Lihat Ambil metrik Kafka. |
maxOffsetsPerTrigger |
Tidak | Jumlah maksimum offset untuk diproses per interval pemicu. Offset didistribusikan secara proporsional di seluruh partisi topik. Nilai yang valid: bilangan bulat positif. |
maxTriggerDelay |
15m |
Waktu maksimum untuk minOffsetsPerTrigger menunggu terakumulasi sebelum memicu. Nilai yang valid: string durasi seperti 10m atau 600s. |
minOffsetsPerTrigger |
Tidak | Jumlah minimum offset untuk terakumulasi sebelum memicu mikro-batch. Ketika maxTriggerDelay tercapai, mikro-batch berjalan terlepas dari itu. Nilai yang valid: bilangan bulat positif. |
Untuk opsi offset yang hanya berlaku untuk pembacaan batch dengan spark.read.format("kafka"), lihat Opsi Kafka DataFrameReader.
Untuk klien Kafka (kafka.*) dan opsi autentikasi, lihat Opsi.
Opsi DataFrameWriter
Gunakan opsi ini dengan DataFrameWriter.option() dan DataFrameWriterV2.option() untuk mengontrol cara Azure Databricks menulis data.
Example
Contoh berikut diatur mergeSchema ke True untuk menulis tabel Delta Lake:
Python
df.write.format("delta").option("mergeSchema", True).saveAsTable("my_table")
Scala
df.write.format("delta").option("mergeSchema", "true").saveAsTable("my_table")
Avro
| Key | Default | Description |
|---|---|---|
avroSchema |
Tidak | Skema Avro lengkap sebagai string JSON. Gunakan opsi ini untuk mengonversi jenis Spark SQL ke jenis Avro tertentu. Berlaku untuk file Avro. |
avroSchemaUrl |
Tidak | URL yang menunjuk ke file skema Avro. Gunakan alih-alih avroSchema ketika skema disimpan secara eksternal. Bersifat saling eksklusif dengan avroSchema. Berlaku untuk file Avro. |
compression |
snappy |
Codec kompresi yang digunakan saat menulis. Nilai yang valid: uncompressed, , deflatesnappy, bzip2, xz, zstandard. Berlaku untuk file Avro. |
recordName |
topLevelRecord |
Nama rekaman tingkat atas dalam skema Avro output. Berlaku untuk file Avro. |
positionalFieldMatching |
false |
Apakah akan mencocokkan kolom antara skema Spark dan skema Avro menurut posisi bidang, bukan berdasarkan nama. Berlaku untuk file Avro. |
recordNamespace |
String kosong | Namespace untuk rekaman tingkat atas dalam skema Avro output. Berlaku untuk file Avro. |
Danau Delta dan Apache Iceberg
| Key | Default | Description |
|---|---|---|
clusterByAuto |
false |
Apakah akan mengaktifkan pengklusteran cairan otomatis, di mana Azure Databricks memilih kolom pengklusteran berdasarkan pola kueri. Hanya valid dengan mode("overwrite"). Tidak dapat digunakan dengan append mode. Tersedia di Databricks Runtime 16.4 ke atas. Berlaku untuk Menggunakan pengklusteran cair untuk tabel. |
mergeSchema |
Tidak | Apakah akan mengaktifkan evolusi skema untuk operasi tulis. Kolom baru di DataFrame sumber ditambahkan ke skema tabel target. Berlaku untuk penambah batch dan streaming. Berlaku untuk Memperbarui skema tabel. |
overwriteSchema |
Tidak | Apakah akan mengganti skema tabel dan pemartisian saat menimpa.
mode("overwrite") Membutuhkan tanpa replaceWhere. Tidak dapat digunakan dengan partitionOverwriteMode. Berlaku untuk Memperbarui skema tabel. |
partitionOverwriteMode |
Tidak | Mode timpa partisi. Atur ini ke dynamic untuk menimpa hanya partisi yang berisi data baru, membiarkan semua partisi lain tidak berubah. Mode warisan, tidak didukung pada komputasi tanpa server atau Databricks SQL. Nilai yang valid: static, dynamic. Berlaku untuk Menimpa data secara selektif dengan Delta Lake. |
replaceOn |
Tidak | Ekspresi boolean yang cocok dengan baris dalam tabel target untuk diganti dengan baris dari kueri sumber. Dapat mereferensikan kolom dari tabel target dan kueri sumber. Baris dalam target yang cocok dengan baris sumber dihapus dan diganti. Jika sumber kosong, tidak ada penghapusan yang terjadi. Gunakan targetAlias untuk membedakan referensi kolom. Tersedia di Databricks Runtime 17.1 ke atas. Berlaku untuk Menimpa data secara selektif dengan Delta Lake. |
replaceUsing |
Tidak | Daftar nama kolom yang dipisahkan koma yang digunakan untuk mencocokkan baris antara tabel target dan kueri sumber. Target dan sumber harus berisi semua kolom yang tercantum. Baris dalam target yang cocok dengan baris sumber di bawah perbandingan kesetaraan dihapus dan diganti.
NULL nilai diperlakukan sebagai tidak sama dan tidak akan cocok. Tersedia di Databricks Runtime 16.3 ke atas. Berlaku untuk Menimpa data secara selektif dengan Delta Lake. |
replaceWhere |
Tidak | Ekspresi predikat. Secara atomik hanya menimpa rekaman yang cocok dengan predikat. Berlaku untuk Menimpa data secara selektif dengan Delta Lake. |
targetAlias |
Tidak | Alias string untuk tabel target. Gunakan dengan replaceOn atau replaceWhere untuk membedakan referensi kolom saat kondisi mereferensikan kolom dari tabel target dan kueri sumber. Berlaku untuk Menimpa data secara selektif dengan Delta Lake. |
txnAppId |
Tidak | String unik yang mengidentifikasi aplikasi untuk penulisan idempogen dalam foreachBatch operasi. Gunakan bersama-sama untuk txnVersion memastikan penulisan tepat sekali ke beberapa tabel Delta Lake. Berlaku untuk Gunakan foreachBatch untuk penulisan tabel idempotensi. |
txnVersion |
Tidak | Angka yang meningkat secara monoton yang digunakan sebagai versi transaksi untuk penulisan idempogen dalam foreachBatch operasi. Gunakan bersama-sama untuk txnAppId memastikan penulisan tepat sekali ke beberapa tabel Delta Lake. Berlaku untuk Gunakan foreachBatch untuk penulisan tabel idempotensi. |
optimizeWrite |
Tidak | Apakah akan mengaktifkan Pengoptimalan Otomatis Tulis untuk operasi tulis ini. Mengambil alih spark.databricks.delta.optimizeWrite.enabled konfigurasi. Berlaku untuk Apa delta Lake di Azure Databricks?. |
userMetadata |
Tidak | String yang ditentukan pengguna ditambahkan ke metadata penerapan untuk operasi tulis. Terlihat dalam output .DESCRIBE HISTORY Berlaku untuk Memperkaya tabel dengan metadata kustom. |
CSV
| Key | Default | Description |
|---|---|---|
charToEscapeQuoteEscaping |
\0 (tidak diaktifkan) |
Karakter yang digunakan untuk menghindari karakter escape ketika berbeda dari karakter kutipan. Berlaku untuk csv (DataFrameWriter). |
compression |
none |
Codec kompresi yang digunakan saat menulis. Nilai yang valid: none, , bzip2gzip, lz4, snappy, deflate, zstd. Berlaku untuk csv (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
Format string untuk nilai kolom tanggal. Berlaku untuk csv (DataFrameWriter). |
emptyValue |
String kosong | String yang ditulis untuk nilai kosong (non-null). Berlaku untuk csv (DataFrameWriter). |
encoding |
UTF-8 |
Pengodean karakter untuk file output. Berlaku untuk csv (DataFrameWriter). |
escape |
\ |
Karakter yang digunakan untuk menghindari nilai yang dikutip. Berlaku untuk csv (DataFrameWriter). |
escapeQuotes |
true |
Apakah akan lolos dari karakter kutipan di dalam nilai bidang yang dikutip. Berlaku untuk csv (DataFrameWriter). |
header |
false |
Apakah akan menulis nama kolom sebagai baris pertama output. Berlaku untuk csv (DataFrameWriter). |
ignoreLeadingWhiteSpace |
false |
Apakah akan memangkas spasi kosong di depan dari nilai saat menulis. Berlaku untuk csv (DataFrameWriter). |
ignoreTrailingWhiteSpace |
false |
Apakah akan memangkas spasi kosong berikutnya dari nilai saat menulis. Berlaku untuk csv (DataFrameWriter). |
lineSep |
\n |
String pemisah baris yang digunakan di antara rekaman. Berlaku untuk csv (DataFrameWriter). |
locale |
en-US |
Sebuah pengenal java.util.Locale. Memengaruhi pemformatan nilai tanggal dan tanda waktu saat menulis. |
nullValue |
String kosong | String ditulis untuk nilai null. Berlaku untuk csv (DataFrameWriter). |
quote |
" |
Karakter yang digunakan untuk mengutip nilai bidang yang berisi pemisah. Berlaku untuk csv (DataFrameWriter). |
quoteAll |
false |
Apakah akan mengapit semua nilai bidang dalam tanda kutip terlepas dari kontennya. Berlaku untuk csv (DataFrameWriter). |
sep |
, |
Karakter pemisah bidang. Berlaku untuk csv (DataFrameWriter). |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
String format untuk nilai kolom tanda waktu. Berlaku untuk csv (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Format string untuk tanda waktu tanpa nilai kolom zona waktu (TimestampNTZType). |
Excel
| Key | Default | Description |
|---|---|---|
dataAddress |
Tidak | Nama lembar atau sel awal untuk tulis. Jika dihilangkan, tulis ke lembar bernama Sheet1 mulai dari sel A1. Menerima nama lembar ("SheetName") atau referensi sel tunggal ("SheetName!A1"). Rentang sel tidak didukung untuk penulisan. |
dateFormatInWrite |
yyyy-mm-dd |
Excel string format sel yang diterapkan ke kolom Date. Menggunakan sintaks format Excel. |
headerRows |
0 |
Apakah akan menulis nama kolom sebagai baris pertama. Nilai yang valid: 0, 1. |
timestampNTZFormat |
yyyy-mm-dd hh:mm:ss |
Excel string format sel yang diterapkan ke kolom TimestampNTZ dan Timestamp. Menggunakan sintaks format Excel. |
version |
xlsx |
Versi format file Excel untuk ditulis. Nilai yang valid: xlsx, xls. |
JSON
| Key | Default | Description |
|---|---|---|
compression |
none |
Codec kompresi yang digunakan saat menulis. Nilai yang valid: none, , bzip2gzip, lz4, snappy, deflate, zstd. Berlaku untuk json (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
Format string untuk nilai kolom tanggal. Berlaku untuk json (DataFrameWriter). |
encoding |
UTF-8 |
Pengodean karakter untuk file output. Berlaku untuk json (DataFrameWriter). |
ignoreNullFields |
nilai dari spark.sql.jsonGenerator.ignoreNullFields |
Apakah akan menghilangkan bidang dengan nilai null dari output JSON. Berlaku untuk json (DataFrameWriter). |
lineSep |
\n |
String pemisah baris yang digunakan di antara rekaman. Berlaku untuk json (DataFrameWriter). |
locale |
en-US |
Sebuah pengenal java.util.Locale. Memengaruhi pemformatan nilai tanggal dan tanda waktu saat menulis. |
pretty |
false |
Apakah akan mengaktifkan output JSON cantik (inden, multibaris). |
sortKeys |
false |
Apakah akan mengurutkan kunci objek JSON menurut abjad dalam output. Berguna untuk menghasilkan output deterministik. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
String format untuk nilai kolom tanda waktu. Berlaku untuk json (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Format string untuk tanda waktu tanpa nilai kolom zona waktu (TimestampNTZType). |
writeNonAsciiCharacterAsCodePoint |
false |
Apakah akan mengodekan karakter non-ASCII sebagai \uXXXX urutan escape Unicode alih-alih karakter UTF-8 harfiah dalam output. |
ORC
| Key | Default | Description |
|---|---|---|
compression |
zstd |
Codec kompresi yang digunakan saat menulis. Nilai yang valid: none, , uncompressedsnappy, zlib, lzo, zstd, lz4, brotli. Berlaku untuk orc (DataFrameWriter). |
Parket
| Key | Default | Description |
|---|---|---|
compression |
snappy |
Codec kompresi yang digunakan saat menulis. Nilai yang valid: none, , snappyuncompressed, gzip, lzo, brotli, lz4, lz4_raw, zstd. Berlaku untuk parquet (DataFrameWriter). |
spark.sql.parquet.outputTimestampType |
INT96 |
Jenis fisik yang digunakan untuk mengodekan kolom tanda waktu. Nilai yang valid: INT96, TIMESTAMP_MICROS, TIMESTAMP_MILLIS. Gunakan INT96 untuk kompatibilitas dengan pembaca Parquet warisan yang tidak mendukung jenis tanda waktu standar. |
Teks
| Key | Default | Description |
|---|---|---|
compression |
none |
Codec kompresi yang digunakan saat menulis. Nilai yang valid: none, , bzip2gzip, lz4, snappy, deflate, zstd. Berlaku untuk teks (DataFrameWriter). |
encoding |
UTF-8 |
Pengodean karakter untuk file output. |
lineSep |
\n |
String pemisah baris yang digunakan di antara rekaman. Berlaku untuk teks (DataFrameWriter). |
XML
| Key | Default | Description |
|---|---|---|
arrayElementName |
item |
Nama elemen untuk elemen array yang tidak memiliki nama eksplisit. Berlaku untuk xml (DataFrameWriter). |
attributePrefix |
_ |
Awalan diawali ke nama bidang yang sesuai dengan atribut XML. Berlaku untuk xml (DataFrameWriter). |
compression |
none |
Codec kompresi yang digunakan saat menulis. Nilai yang valid: none, , bzip2gzip, lz4, snappy, deflate, zstd. Berlaku untuk xml (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
Format string untuk nilai kolom tanggal. Berlaku untuk xml (DataFrameWriter). |
declaration |
version="1.0" encoding="UTF-8" standalone="yes" |
String deklarasi XML yang ditulis di bagian atas setiap file output. Atur ke string kosong untuk menekan deklarasi. Berlaku untuk xml (DataFrameWriter). |
encoding |
UTF-8 |
Pengodean karakter untuk file output. Berlaku untuk xml (DataFrameWriter). |
indent |
4 spasi | String yang digunakan untuk mengindentasi elemen turunan dalam output. Atur ke string kosong untuk menonaktifkan indentasi dan menulis setiap baris pada satu baris. |
locale |
en-US |
Sebuah pengenal java.util.Locale. Memengaruhi pemformatan nilai tanggal dan tanda waktu saat menulis. |
nullValue |
null |
String yang ditulis untuk nilai null. Ketika diatur ke null, atribut dan elemen turunan untuk bidang null dihilangkan. Berlaku untuk xml (DataFrameWriter). |
rootTag |
ROWS |
Tag elemen akar yang membungkus semua elemen baris dalam output. Berlaku untuk xml (DataFrameWriter). |
rowTag |
ROW |
Tag elemen yang mewakili baris dalam output. Berlaku untuk xml (DataFrameWriter). |
singleVariantColumn |
Tidak | Nama kolom Varian tunggal untuk ditulis ke file XML. Berlaku untuk xml (DataFrameWriter). |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
String format untuk nilai kolom tanda waktu. Berlaku untuk xml (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Format string untuk tanda waktu tanpa nilai kolom zona waktu. Berlaku untuk xml (DataFrameWriter). |
validateName |
true |
Apakah akan melemparkan pengecualian jika nama kolom bukan pengidentifikasi elemen XML yang valid. Berlaku untuk xml (DataFrameWriter). |
valueTag |
_VALUE |
Nama bidang yang digunakan untuk data karakter dalam elemen XML yang juga memiliki atribut atau elemen turunan. Berlaku untuk xml (DataFrameWriter). |
Opsi DataStreamWriter
Gunakan opsi ini dengan DataStreamWriter.option() untuk mengonfigurasi penulisan streaming.
Example
Contoh berikut mengatur lokasi titik pemeriksaan untuk aliran:
Python
(df.writeStream
.format("delta")
.option("checkpointLocation", "/path/to/checkpoint")
.start("/path/to/table"))
Scala
df.writeStream
.format("delta")
.option("checkpointLocation", "/path/to/checkpoint")
.start("/path/to/table")
Umum
| Key | Default | Description |
|---|---|---|
checkpointLocation |
Tidak ada (diperlukan) | Jalur ke direktori titik pemeriksaan untuk kueri streaming. Diperlukan untuk toleransi kesalahan dan jaminan pemrosesan tepat sekali. Setiap kueri streaming harus menggunakan lokasi titik pemeriksaan unik. Databricks merekomendasikan penyimpanan titik pemeriksaan di volume Unity Catalog atau jalur penyimpanan cloud. Lihat checkpoint Streaming Terstruktur. |
path |
Tidak | Jalur output untuk sink streaming berbasis file seperti Parquet. Hanya berlaku untuk format berbasis file. |
Sink konsol
| Key | Default | Description |
|---|---|---|
numRows |
20 |
Jumlah baris yang ditampilkan untuk setiap mikro-batch saat menulis ke sink konsol. |
truncate |
true |
Apakah akan memotong string panjang saat menampilkan baris. Atur ke false untuk menampilkan nilai string lengkap. |
Danau Delta
Opsi berikut berlaku saat menulis aliran ke tabel Delta Lake menggunakan format("delta"). Timpa opsi khusus seperti overwriteSchema, , replaceWheredan partitionOverwriteMode tidak didukung untuk penulisan streaming.
| Key | Default | Description |
|---|---|---|
mergeSchema |
false |
Apakah akan mengembangkan skema tabel Delta Lake saat DataFrame streaming berisi kolom baru. Berlaku hanya untuk menambahkan mode output. Berlaku untuk Memperbarui skema tabel. |
userMetadata |
Tidak | String yang ditentukan pengguna ditambahkan ke metadata penerapan untuk operasi tulis. Terlihat dalam output .DESCRIBE HISTORY Berlaku untuk Memperkaya tabel dengan metadata kustom. |
Sink file
Opsi berikut berlaku saat menulis aliran ke format berbasis file (Parquet, JSON, CSV, ORC, teks). Untuk opsi khusus format, lihat Opsi DataFrameWriter.
| Key | Default | Description |
|---|---|---|
retention |
Tidak | Berapa lama untuk mempertahankan file metadata sink yang digunakan untuk toleransi dan pemadatan kesalahan. Menerima string waktu seperti 7 days atau 24 hours. Ketika tidak diatur, file metadata dipertahankan tanpa batas waktu. |
Sink Kafka
Untuk daftar lengkap opsi untuk menulis aliran ke Kafka, lihat Opsi.
| Key | Default | Description |
|---|---|---|
kafka.bootstrap.servers |
Tidak | Required. Daftar alamat broker host:port Kafka yang dipisahkan koma. |
topic |
Tidak | Topik Kafka target untuk semua baris. Diperlukan jika DataFrame tidak menyertakan topic kolom. |
kafka.* |
Tidak | Setiap konfigurasi produsen Kafka diawali dengan kafka.. Contohnya, kafka.compression.type. |
Sink memori
| Key | Default | Description |
|---|---|---|
queryName |
Tidak ada (diperlukan) | Nama tabel dalam memori tempat kueri menulis. Diperlukan untuk sink memori. Juga dapat dikonfigurasi melalui .queryName(). |
mode |
exactlyonce |
Jaminan pengiriman untuk sink memori.
exactlyonce menggunakan mode mikro-batch dengan semantik sekali persis.
atleastonce menggunakan mode berkelanjutan dengan semantik setidaknya sekali. Nilai yang valid: exactlyonce, atleastonce. |
Opsi fungsi Spark
Beberapa fungsi bawaan Spark SQL menerima options peta yang mengontrol perilaku penguraian atau serialisasi. Berikan opsi sebagai Python dict atau Scala Map[String, String].
Example
Contoh berikut mengurai kolom JSON saat menghilangkan rekaman cacat:
Python
from pyspark.sql.functions import from_json
from pyspark.sql.types import StructType, StructField, StringType
schema = StructType([StructField("name", StringType())])
df = df.withColumn("parsed", from_json("json_col", schema, {"mode": "DROPMALFORMED"}))
Scala
import org.apache.spark.sql.functions.from_json
import org.apache.spark.sql.types._
val schema = StructType(Seq(StructField("name", StringType)))
val df = df.withColumn("parsed", from_json(col("json_col"), schema, Map("mode" -> "DROPMALFORMED")))
Avro
Fungsi Avro menerima opsi yang sama dengan opsi DataFrame terkait:
-
from_avrodanschema_of_avrogunakan opsi DataFrameReader Avro. -
to_avromenggunakan opsi DataFrameWriter Avro.
Example
Contoh berikut mendekode kolom Avro dengan evolusi skema diaktifkan:
Python
from pyspark.sql.functions import from_avro
df = df.withColumn("decoded", from_avro("avro_col", json_schema, {"avroSchemaEvolutionMode": "restart"}))
Scala
import org.apache.spark.sql.avro.functions.from_avro
val df = df.withColumn("decoded", from_avro(col("avro_col"), jsonSchema, Map("avroSchemaEvolutionMode" -> "restart")))
Selain itu, varian Schema Registry dari from_avro dan to_avro menerima opsi berikut:
| Key | Default | Description |
|---|---|---|
schemaId |
Tidak | ID Skema dari Confluent Schema Registry untuk digunakan saat mendekode data Avro yang dikodekan dengan skema yang tidak kompatibel dengan jsonFormatSchema. Hanya berlaku untuk from_avro . |
confluent.schema.registry.* |
Tidak | Properti konfigurasi klien Confluent Schema Registry. Berikan properti klien Confluent SR apa pun menggunakan awalan ini, misalnya confluent.schema.registry.basic.auth.user.info untuk kredensial autentikasi dasar. Diperlukan untuk varian from_avro Registri Skema dan to_avro. |
CSV
Fungsi CSV menerima opsi yang sama dengan opsi DataFrame yang sesuai:
-
from_csvdanschema_of_csvgunakan opsi CSV DataFrameReader. -
to_csvmenggunakan opsi CSV DataFrameWriter.
Example
Contoh berikut membaca CSV dengan pemisah dan NULL nilai kustom:
Python
from pyspark.sql.functions import from_csv
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
schema = StructType([StructField("id", IntegerType()), StructField("name", StringType())])
df = df.withColumn("parsed", from_csv("csv_col", schema, {"sep": "|", "nullValue": "N/A"}))
Scala
import org.apache.spark.sql.functions.from_csv
import org.apache.spark.sql.types._
val schema = StructType(Seq(StructField("id", IntegerType), StructField("name", StringType)))
val df = df.withColumn("parsed", from_csv(col("csv_col"), schema, Map("sep" -> "|", "nullValue" -> "N/A")))
JSON
Fungsi JSON menerima opsi yang sama dengan opsi DataFrame yang sesuai:
-
from_jsondanschema_of_jsongunakan opsi JSON DataFrameReader. -
to_jsonmenggunakan opsi JSON DataFrameWriter.
Example
Contoh berikut menulis JSON dengan NULL bidang yang diabaikan dan pemformatan cantik diaktifkan:
Python
from pyspark.sql.functions import to_json
df = df.withColumn("json_str", to_json("struct_col", {"pretty": "true", "ignoreNullFields": "true"}))
Scala
import org.apache.spark.sql.functions.to_json
val df = df.withColumn("json_str", to_json(col("struct_col"), Map("pretty" -> "true", "ignoreNullFields" -> "true")))
Protobuf
from_protobuf dan to_protobuf jangan gunakan DataSource berbasis file. Data Protobuf selalu dibaca dan ditulis sebagai kolom biner menggunakan fungsi-fungsi ini. Opsi diteruskan sebagai Map[String, String] dan peka huruf besar/kecil.
Example
Contoh berikut mendekode kolom Protobuf menggunakan mode PERMISSIVE:
Python
from pyspark.sql.functions import from_protobuf
df = df.withColumn("decoded", from_protobuf("proto_col", "MyMessage", "/path/to/descriptor.desc",
{"mode": "PERMISSIVE", "enums.as.ints": "true"}))
Scala
import org.apache.spark.sql.protobuf.functions.from_protobuf
val df = df.withColumn("decoded", from_protobuf(col("proto_col"), "MyMessage", "/path/to/descriptor.desc",
Map("mode" -> "PERMISSIVE", "enums.as.ints" -> "true")))
Fungsi Protobuf menggunakan opsi berikut:
| Key | Default | Description |
|---|---|---|
mode |
FAILFAST |
Cara menangani catatan yang rusak.
FAILFAST melempar pengecualian.
PERMISSIVE mengatur bidang cacat ke null. Nilai yang valid: FAILFAST, PERMISSIVE. Berlaku untuk from_protobuf. |
recursive.fields.max.depth |
-1 (dinonaktifkan) |
Kedalaman rekursi maksimum untuk bidang Protobuf rekursif. Atur ke 0 untuk menonaktifkan dukungan bidang rekursif. Nilai yang valid: 0 ke 10. Berlaku untuk from_protobuf. |
convert.any.fields.to.json |
false |
Apakah akan mengonversi bidang Protobuf Any menjadi string JSON alih-alih STRUCT. Berlaku untuk from_protobuf. |
emit.default.values |
false |
Apakah akan memancarkan bidang dengan nilai nol atau default (semantik proto3). Ketika false, bidang dengan nilai default dihilangkan dari output. Berlaku untuk from_protobuf. |
enums.as.ints |
false |
Apakah akan merender bidang enum sebagai nilai bilangan bulat, bukan string. Berlaku untuk from_protobuf. |
upcast.unsigned.ints |
false |
Apakah akan meningkatkan uint32 ke Long dan uint64 untuk Decimal(20,0) mencegah luapan bilangan bulat. Berlaku untuk from_protobuf. |
unwrap.primitive.wrapper.types |
false |
Apakah akan membongkar jenis pembungkus google.protobuf (misalnya, Int32Value dan StringValue) ke jenis Spark primitif yang sesuai. Berlaku untuk from_protobuf. |
retain.empty.message.types |
false |
Apakah akan mempertahankan jenis pesan Protobuf kosong dalam skema output dengan menyisipkan kolom dummy. Berlaku untuk from_protobuf. |
schema.registry.subject |
Tidak | Nama subjek Registri Skema. Diperlukan saat menggunakan varian from_protobuf Registri Skema dan to_protobuf. |
schema.registry.address |
Tidak | Alamat Registri Skema (host dan port). Diperlukan saat menggunakan varian from_protobuf Registri Skema dan to_protobuf. |
schema.registry.protobuf.name |
Tidak | Menentukan pesan Protobuf mana yang akan digunakan saat subjek registri skema berisi beberapa pesan. Optional. |
XML
Fungsi XML menerima opsi yang sama dengan opsi DataFrame terkait:
-
from_xmldanschema_of_xmlgunakan opsi XML DataFrameReader. -
to_xmlmenggunakan opsi XML DataFrameWriter.
Example
Contoh berikut menulis XML dengan tag akar dan baris kustom:
Python
from pyspark.sql.functions import to_xml
df = df.withColumn("xml_str", to_xml("struct_col", {"rootTag": "records", "rowTag": "record"}))
Scala
import org.apache.spark.sql.functions.to_xml
val df = df.withColumn("xml_str", to_xml(col("struct_col"), Map("rootTag" -> "records", "rowTag" -> "record")))