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 | Nilai yang valid | Description |
|---|---|---|---|
ignoreCorruptFiles |
false |
true, 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. |
ignoredPathSegmentRegex |
^[._] |
String ekspresi reguler Java | Mengontrol file dan direktori mana yang dilewati sebagai tersembunyi selama daftar file. Regex dicocokkan dengan setiap direktori individu dan nama file di bawah jalur yang sedang dibaca. Nama yang cocok dilewati dari daftar file, penemuan partisi, dan bacaan, dan nama direktori yang cocok mengecualikan seluruh subtreenya. Default ^[._] melompati nama yang dimulai dengan _ atau .. Atur ke string kosong untuk menonaktifkan file tersembunyi filter dan permukaan, termasuk file penanda internal Spark seperti _SUCCESS dan file di bawah _temporary. Terlepas dari regex, _metadata dan _common_metadata nama selalu tercantum, nama yang berakhiran selalu dilewati ._COPYING_ , dan _direktori partisi awalan yang berisi = selalu disimpan. Tidak seperti pathGlobFilter, yang merupakan glob gaya termasuk yang diterapkan ke nama file daun saja, ini adalah regex gaya pengecualian yang diterapkan ke setiap komponen jalur, dan keduanya dapat digabungkan. Anda juga dapat mengatur ini dengan spark.sql.files.ignoredPathSegmentRegex konfigurasi Spark, dan opsi sumber data lebih diutamakan saat keduanya diatur. Tersedia di Databricks Runtime 19 ke atas. |
ignoreMissingFiles |
false untuk Auto Loader, true untuk COPY INTO (warisan) |
true, false |
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 | String tanda waktu | Tanda waktu opsional sebagai filter untuk hanya menyerap file yang memiliki tanda waktu modifikasi setelah tanda waktu yang ditentukan. |
modifiedBefore |
Tidak | String tanda waktu | Tanda waktu opsional sebagai filter untuk hanya menyerap file yang memiliki tanda waktu modifikasi sebelum tanda waktu yang ditentukan. |
pathGlobFilter atau fileNamePattern |
Tidak | String pola glob | Pola glob potensial untuk memilih file. Setara dengan PATTERN dalam COPY INTO (warisan).
fileNamePattern dapat digunakan dalam read_files. |
recursiveFileLookup |
false |
true, false |
Ketika true, opsi ini mencari melalui direktori berlapis bahkan jika namanya tidak mengikuti skema penamaan partisi seperti date=2019-07-01. |
Avro
Opsi berikut berlaku saat membaca file Avro.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
avroSchema |
Tidak | String skema Avro | Skema opsional yang ditentukan 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 |
none, restart |
Cara menangani evolusi skema saat menggunakan registri skema.
none mengabaikan perubahan skema dan melanjutkan pekerjaan.
restart
UnknownFieldException meningkatkan ketika perubahan skema terdeteksi dan memerlukan pekerjaan dimulai ulang. |
datetimeRebaseMode |
LEGACY |
EXCEPTION, , LEGACYCORRECTED |
Mengontrol pengubahan dasar nilai TANGGAL dan CAP WAKTU antara kalender Julian dan Gregorian Proleptik. |
enableStableIdentifiersForUnionType |
false |
true, 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 |
true, false |
Apakah ingin menentukan skema di beberapa file dan menggabungkan skema dari tiap file?
mergeSchema untuk Avro tidak memperlonggar tipe data. |
mode |
FAILFAST |
FAILFAST, , PERMISSIVEDROPMALFORMED |
Mode pengurai untuk menangani rekaman yang rusak.
FAILFAST melempar pengecualian.
PERMISSIVE mengatur bidang cacat ke null.
DROPMALFORMED diam-diam menjatuhkan catatan buruk. |
readerCaseSensitive |
true |
true, false |
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 |
0 ke 15 |
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. |
rescuedDataColumn |
Tidak | String nama kolom | 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_ |
String apa saja | Awalan yang digunakan untuk nama bidang tipe union stabil saat enableStableIdentifiersForUnionType=true. |
CSV
Opsi berikut berlaku saat membaca file CSV.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
badRecordsPath |
Tidak | String jalur | Jalur untuk menyimpan file untuk merekam informasi tentang rekaman CSV yang salah. |
charToEscapeQuoteEscaping |
\0 |
Satu karakter | Karakter yang digunakan untuk menghindari karakter yang digunakan untuk menghindari tanda kutip. Misalnya, untuk rekaman berikut: [ " a\\", b ]:
|
columnNameOfCorruptRecord |
_corrupt_record |
String nama kolom | 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 |
Satu karakter | Mendefinisikan karakter yang mewakili komentar baris ketika ditemukan di awal baris teks. Gunakan '\0' untuk menonaktifkan pelompatan komentar. |
dateFormat |
yyyy-MM-dd |
String format tanggal | Format untuk memproses string tanggal. |
emptyValue |
String kosong | String apa saja | Representasi string untuk nilai yang kosong. |
enableDateTimeParsingFallback |
false |
true, 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 |
java.nio.charset.Charset Nama |
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 |
true, false |
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 |
\ |
Satu karakter | Karakter escape untuk digunakan saat mengurai data. |
extension |
csv |
String ekstensi file | Ekstensi nama file yang diharapkan untuk dibaca. File tanpa ekstensi ini difilter. |
failOnUnknownFields |
false |
true, 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 |
true, 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 |
true, false |
Apakah file CSV berisi tajuk? Auto Loader menganggap bahwa file memiliki judul saat menyimpulkan skema. |
ignoreLeadingWhiteSpace |
false |
true, false |
Apakah akan mengabaikan spasi di awal untuk setiap nilai yang diurai. |
ignoreTrailingWhiteSpace |
false |
true, false |
Apakah akan mengabaikan spasi kosong di akhir untuk setiap nilai hasil penguraian. |
inferSchema |
false |
true, 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) |
Bilangan bulat positif | Ukuran buffer dalam byte untuk pengurai CSV. Berguna untuk menyetel penggunaan memori saat mengurai file CSV besar. |
lineSep |
Tidak ada, yang mencakup \r, \r\n, dan \n |
Sebuah string | Deretan antara dua catatan CSV berturut-turut. |
locale |
US |
Pengidentifikasi java.util.Locale |
Lokal Java diidentifikasi yang memengaruhi tanggal default, tanda waktu, dan penguraian desimal dalam CSV. |
maxCharsPerColumn |
-1 |
Bilangan bulat positif, atau -1 untuk tidak terbatas |
Jumlah maksimum karakter yang diharapkan dari sebuah nilai untuk dianalisis. Dapat digunakan untuk menghindari kesalahan memori. Pengaturan awal adalah -1, yang berarti tidak terbatas. |
maxColumns |
20480 |
Bilangan bulat positif | Batas tegas berapa banyak kolom yang dapat dimiliki sebuah catatan. |
mergeSchema |
false |
true, 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 |
PERMISSIVE, , DROPMALFORMEDFAILFAST |
Mode parser untuk menangani rekaman yang rusak. |
multiLine |
false |
true, false |
Apakah catatan CSV mencakup beberapa baris. |
nanValue |
NaN |
String apa saja | Representasi string dari nilai yang bukan angka saat mengurai kolom FloatType dan DoubleType. |
negativeInf |
-Inf |
String apa saja | Representasi string dari infinitas negatif saat mengurai kolom FloatType atau DoubleType. |
nullValue |
String kosong | String apa saja | Representasi string dari suatu nilai yang null. |
parserCaseSensitive (tidak digunakan lagi) |
false |
true, 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 |
String apa saja | Representasi string dari infinitas positif ketika mengurai kolom FloatType atau DoubleType. |
preferDate |
true |
true, false |
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 |
" |
Satu karakter | Karakter yang digunakan untuk menghindari nilai-nilai di mana pemisah bidang adalah bagian dari nilai tersebut. |
readerCaseSensitive |
true |
true, false |
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 | String nama kolom | 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 |
, |
Sebuah string | String pemisah antar kolom. |
singleVariantColumn |
Tidak | String nama kolom | 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 |
Bilangan bulat positif atau 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. |
timeFormat |
HH:mm:ss |
String format waktu | Format untuk mengurai TimeType nilai kolom. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
String format tanda waktu | Format untuk memproses string penanda waktu. |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
String format tanda waktu | Format untuk mengurai tanda waktu tanpa string zona waktu (TimestampNTZType). |
timeZone |
Tidak | String java.time.ZoneId |
java.time.ZoneId untuk digunakan saat menguraikan stempel waktu dan tanggal. |
unescapedQuoteHandling |
STOP_AT_DELIMITER |
STOP_AT_CLOSING_QUOTE, , BACK_TO_DELIMITERSTOP_AT_DELIMITER, , SKIP_VALUE,RAISE_ERROR |
Strategi untuk menangani tanda kutip yang belum di-escape. Perilaku setiap opsi yang diizinkan adalah sebagai berikut:
|
Excel
Opsi berikut berlaku saat membaca file Excel.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
dataAddress |
Tidak | Rentang sel atau string nama lembar | 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 |
0, 1 |
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_c3, dll. |
ignoreMissingSheet |
false |
true, 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. |
includePhoneticRuns |
false |
true, false |
Apakah akan menyertakan anotasi fonetik (seperti pinyin atau furigana) yang digabungkan ke nilai string sel saat membaca file XLSX. |
operation |
readSheet |
readSheet, listSheets |
Operasi yang akan dilakukan pada buku kerja Excel.
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 tanda waktu | 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 tanggal | String format kustom untuk nilai string yang dibaca sebagai Date. Format tanggal kustom mengikuti format pada pola Tanggalwaktu. |
JSON
Opsi berikut berlaku saat membaca file JSON.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
allowBackslashEscapingAnyCharacter |
false |
true, 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 |
true, false |
Apakah akan mengizinkan penggunaan komentar gaya Java, C, dan C ++ ('/', '*'dan '//' varietas) dalam konten yang diurai atau tidak. |
allowNonNumericNumbers |
true |
true, false |
Apakah akan mengizinkan penggunaan kumpulan token bukan angka (not-a-number) (NaN) sebagai nilai bilangan mengambang yang sah. |
allowNumericLeadingZeros |
false |
true, false |
Apakah akan mengizinkan angka integral dimulai dengan nol tambahan (dapat diabaikan) (misalnya, 000001). |
allowSingleQuotes |
true |
true, false |
Apakah akan mengizinkan penggunaan tanda kutip tunggal (apostrof, karakter '\') untuk mengutip string (nama dan nilai String). |
allowUnquotedControlChars |
false |
true, 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 |
true, false |
Apakah akan mengizinkan penggunaan nama bidang yang tidak dikutip, yang diizinkan oleh JavaScript, tetapi tidak oleh spesifikasi JSON. |
alternateVariantEncoding |
Tidak | Z85 |
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 | String jalur | 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 |
String nama kolom | 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 |
String format tanggal | Format untuk memproses string tanggal. |
dropFieldIfAllNull |
false |
true, false |
Apakah akan mengabaikan kolom yang berisi semua nilai null atau array dan struktur kosong selama inferensi skema. |
encoding atau charset |
UTF-8 |
java.nio.charset.Charset Nama |
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 |
true, 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 | Sebuah string di antara dua catatan JSON berurutan. |
locale |
US |
Pengidentifikasi java.util.Locale |
Pengidentifikasi lokal Java yang memengaruhi tanggal default, tanda waktu, dan penguraian desimal dalam JSON. |
maxNestingDepth |
500 |
Bilangan bulat positif | Kedalaman berlapis maksimum yang diizinkan untuk objek dan array JSON. Tingkatkan nilai ini untuk dokumen berlapis dalam. |
maxNumLen |
1000 |
Bilangan bulat positif | Panjang maksimum token angka dalam input JSON. Tingkatkan nilai ini untuk JSON dengan literal numerik besar. |
maxStringLen |
Unlimited | Bilangan bulat positif | Panjang maksimum nilai string dalam input JSON. Atur untuk membatasi penggunaan memori saat mengurai JSON dengan string besar. |
mode |
PERMISSIVE |
PERMISSIVE, , DROPMALFORMEDFAILFAST |
Mode parser untuk menangani rekaman yang rusak. |
multiLine |
false |
true, false |
Apakah catatan JSON mencakup beberapa baris. |
prefersDecimal |
false |
true, 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 |
true, false |
Apakah perlu menyimpulkan tipe data primitif seperti angka dan boolean sebagai StringType. |
readerCaseSensitive |
true |
true, false |
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 | String nama kolom | 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 | String nama kolom | Saat diatur ke nama kolom, menyerap seluruh rekaman JSON sebagai kolom VARIAN tunggal dengan nama yang diberikan alih-alih mengurai setiap bidang ke dalam kolomnya sendiri. Tabel target harus berisi kolom jenis VARIAN dengan nama tersebut. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
String format tanda waktu | Format untuk memproses string penanda waktu. |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
String format tanda waktu | Format untuk mengurai tanda waktu tanpa string zona waktu (TimestampNTZType). |
timeZone |
Tidak | String java.time.ZoneId |
java.time.ZoneId untuk digunakan saat menguraikan stempel waktu dan tanggal. |
upgradeExceptionAsBadRecord |
false |
true, 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 | Nilai yang valid | Description |
|---|---|---|---|
endingOffsets |
latest |
latest, atau string offset JSON |
Di mana berhenti membaca. Dalam string JSON, -1 adalah offset terbaru.
-2, yang merupakan offset paling awal, tidak diizinkan sebagai offset akhir. Ini adalah contoh string offset JSON: {"topicA":{"0":50,"1":-1}}. |
endingOffsetsByTimestamp |
Tidak | String tanda waktu JSON | Offset akhir per partisi ditentukan sebagai tanda waktu dalam milidetik. Misalnya: {"topicA":{"0":2000,"1":3000}}. |
endingTimestamp |
Tidak | Bilangan bulat positif atau 0 |
Tanda waktu akhir global dalam milidetik diterapkan ke semua partisi. |
ORC
Opsi berikut berlaku saat membaca file ORC.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
mergeSchema |
false |
true, false |
Apakah ingin menentukan skema di beberapa file dan menggabungkan skema dari tiap file? |
Parket
Opsi berikut berlaku saat membaca file Parquet.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
datetimeRebaseMode |
LEGACY |
EXCEPTION, , LEGACYCORRECTED |
Mengontrol pengubahan dasar nilai TANGGAL dan CAP WAKTU antara kalender Julian dan Gregorian Proleptik. |
int96RebaseMode |
LEGACY |
EXCEPTION, , LEGACYCORRECTED |
Mengontrol pengubahan basis nilai cap waktu INT96 antara kalender Julian dan kalender Gregorian Proleptik. |
mergeSchema |
false |
true, false |
Apakah ingin menentukan skema di beberapa file dan menggabungkan skema dari tiap file? |
readerCaseSensitive |
true |
true, false |
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 | String nama kolom | 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 | Nilai yang valid | Description |
|---|---|---|---|
batchId |
ID batch terbaru | Bilangan bulat positif atau 0 |
Batch target untuk dibaca. Gunakan untuk mengkueri status kueri sebelumnya. Batch harus dikomitmenkan tetapi belum dibersihkan. |
operatorId |
0 |
Bilangan bulat positif atau 0 |
Operator target yang akan dibaca. Gunakan saat kueri memiliki beberapa operator stateful. |
storeName |
DEFAULT |
String apa saja | 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. |
joinSide |
Tidak |
left, right |
Sisi target untuk dibaca dari untuk gabungan stream-stream. Anda harus menentukan atau storeNamejoinSide untuk gabungan stream-stream, tetapi tidak keduanya. |
snapshotStartBatchId |
Tidak | Bilangan bulat positif atau 0 |
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. |
snapshotPartitionId |
Tidak | Bilangan bulat positif atau 0 |
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. |
readChangeFeed |
false |
true, 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.Untuk detailnya, lihat Membaca perubahan status Streaming Terstruktur. |
changeStartBatchId |
Tidak | Bilangan bulat positif atau 0 |
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. |
changeEndBatchId |
ID batch terbaru | Bilangan bulat positif atau 0 |
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. |
stateVarName |
Tidak | String apa saja | 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. |
readRegisteredTimers |
false |
true, 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. |
flattenCollectionTypes |
true |
true, false |
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. |
Teks
Opsi berikut berlaku saat membaca file teks.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
encoding |
UTF-8 |
java.nio.charset.Charset Nama |
Nama pengodean pemisah baris dalam file TEKS. Konten file tidak terpengaruh oleh opsi ini dan dibaca as-is. |
lineSep |
Tidak ada, yang mencakup \r, \r\n dan \n |
Sebuah string | Sebuah string di antara dua catatan TEXT berturut-turut. |
wholeText |
false |
true, false |
Apakah akan membaca berkas sebagai satu rekaman. |
XML
Opsi berikut berlaku saat membaca file XML.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
rowTag |
Tidak | String apa saja | Tag baris pada file XML untuk diperlakukan sebagai baris. Dalam contoh XML <book> <page><page>...<book>, nilai yang sesuai adalah page. Opsi ini wajib diisi. |
samplingRatio |
1.0 |
0.0 ke 1.0 |
Menentukan sebagian kecil baris yang digunakan untuk inferensi skema. Fungsi bawaan XML mengabaikan opsi ini. |
excludeAttribute |
false |
true, false |
Apakah akan mengecualikan atribut dalam elemen. |
mode |
Tidak |
PERMISSIVE, , DROPMALFORMEDFAILFAST |
Mode untuk menangani rekaman yang rusak selama penguraian.
|
inferSchema |
true |
true, false |
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 |
String nama kolom | Memungkinkan penggantian nama bidang baru yang berisi string cacat yang dibuat oleh PERMISSIVE mode. |
attributePrefix |
Tidak | String apa saja | 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 |
String apa saja | 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 |
java.nio.charset.Charset Nama |
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 |
true, false |
Apakah spasi kosong di sekitar nilai harus dilewati. Data karakter yang hanya berisi spasi kosong diabaikan. |
rowValidationXSDPath |
Tidak | String jalur file | 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 ditentukan atau disimpulkan. |
ignoreNamespace |
false |
true, 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] |
String format tanda waktu | 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] |
String format tanda waktu | 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 | 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 |
Tag bahasa IETF BCP 47 | Mengatur lokal sebagai tag bahasa dalam format IETF BCP 47. Misalnya, locale digunakan saat mengurai tanggal dan tanda waktu. |
nullValue |
tali null |
String apa saja | 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 |
true, false |
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 | String nama kolom | 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 |
String nama kolom | 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 ditentukan untuk menulis, tulis nilai kolom Varian tunggal ke file XML. Juga berlaku untuk opsi XML DataFrameWriter. |
useLegacyXMLParser |
true |
true, false |
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 |
String nama kolom | 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 | Nilai yang valid | Description |
|---|---|---|---|
cleanSource |
off |
off, , deletearchive |
Cara menangani file sumber setelah diproses oleh aliran.
off tidak mengambil tindakan.
delete menghapus file sumber secara permanen.
archive memindahkan file ke sourceArchiveDir. Ketika diatur ke archive, sourceArchiveDir juga harus diatur. Tidak berlaku untuk streaming tabel Delta Lake. |
fileNameOnly |
false |
true, 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 |
true, 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 | Bilangan bulat positif | 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.Untuk Auto Loader, gunakan cloudFiles.maxBytesPerTrigger sebagai gantinya. Lihat Umum. |
maxCachedFiles |
10000 |
Bilangan bulat positif atau 0 |
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. |
maxFileAge |
7d |
String durasi seperti 7d atau 4h |
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. Diabaikan ketika latestFirst dan truemaxFilesPerTrigger 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. |
Bilangan bulat positif | 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.Untuk Auto Loader, gunakan cloudFiles.maxFilesPerTrigger sebagai gantinya. Lihat Umum. |
sourceArchiveDir |
Tidak | String jalur | 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
Opsi berikut berlaku untuk semua konfigurasi Auto Loader.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
cloudFiles.allowOverwrites |
false |
true, 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 | String durasi seperti 1 day atau 1 week |
Auto Loader dapat memicu backfill asinkron pada interval tertentu. Untuk informasi selengkapnya, lihat Melakukan pengisian kembali secara teratur menggunakan cloudFiles.backfillInterval. Jangan gunakan ketika cloudFiles.useManagedFileEvents diatur ke true. |
cloudFiles.cleanSource |
OFF |
OFF, , DELETEMOVE |
Apakah akan menghapus atau memindahkan 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 |
String CalendarInterval seperti 14 days, , 2 weeksatau 1 month |
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.Tersedia di Databricks Runtime 16.4 ke atas. |
cloudFiles.cleanSource.moveDestination |
Tidak | Penyimpanan cloud atau jalur volume Katalog Unity | 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) |
avro, , binaryFilecsv, json, orc, parquet, , text,xml |
Format file data di jalur sumber. Nilai yang valid meliputi:
|
cloudFiles.includeExistingFiles |
true |
true, false |
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 |
true, 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 | String byte seperti 10g |
Jumlah maksimum byte baru yang akan diproses di setiap pemicu. Ini adalah nilai maksimum yang bersifat fleksibel. Jika Anda memiliki file yang masing-masing 3 GB, Azure Databricks memproses 12 GB dalam mikro-batch. File individual tidak pernah dibagi di seluruh batch mikro; itu selalu diproses secara penuh dalam satu, bahkan ketika ukurannya melebihi batas ini. 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 | String durasi | 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 |
Bilangan bulat positif | 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 nama kolom yang dipisahkan koma | 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 menentukan <base-path> untuk memuat data. Jika Anda menentukan 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 ditentukan, none jika tidak |
addNewColumns,none,rescue,failOnNewColumns |
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 | String skema | Informasi skema yang Anda tentukan ke Auto Loader selama inferensi skema. Lihat hint skema untuk detail selengkapnya. |
cloudFiles.schemaLocation |
Tidak ada (diperlukan untuk menyimpulkan skema) | String jalur | Lokasi untuk menyimpan skema yang disimpulkan dan perubahan selanjutnya. Lihat inferensi skema untuk detail selengkapnya. |
cloudFiles.useStrictGlobber |
false |
true, 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 |
true, false |
Apakah akan memvalidasi opsi Auto Loader dan menghasilkan kesalahan jika ada opsi yang tidak diketahui atau tidak konsisten. |
Daftar direktori
Opsi berikut berlaku saat menggunakan mode daftar direktori.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
cloudFiles.useIncrementalListing (tidak digunakan lagi) |
auto pada Databricks Runtime 17.2 ke bawah, false pada Databricks Runtime 17.3 ke atas |
auto, , truefalse |
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. |
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 | Nilai yang valid | Description |
|---|---|---|---|
cloudFiles.fetchParallelism |
1 |
Bilangan bulat positif | Jumlah thread yang akan digunakan saat mengambil pesan dari layanan antrean. Jangan gunakan ketika cloudFiles.useManagedFileEvents diatur ke true. |
cloudFiles.pathRewrites |
Tidak | String peta JSON | 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 | String tag nilai kunci | 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")Jangan gunakan ketika cloudFiles.useManagedFileEvents diatur ke true. Sebagai gantinya, atur tag sumber daya menggunakan konsol penyedia cloud.Untuk informasi selengkapnya, lihat Tag sumber daya penyedia cloud. |
cloudFiles.useManagedFileEvents |
false |
true, 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 |
true, 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 |
true, 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. |
Tag sumber daya penyedia cloud
Auto Loader menambahkan pasangan tag nilai kunci berikut secara default berdasarkan 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.
Untuk informasi selengkapnya tentang Azure, lihat Penamaan Antrean dan Metadata serta cakupanproperties.labels di Langganan Peristiwa. Auto Loader menyimpan pasangan tag nilai kunci ini di JSON sebagai label.
Khusus cloud
Auto Loader memiliki 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.
Azure
Anda harus menentukan nilai untuk semua opsi berikut jika Anda menentukan cloudFiles.useNotifications = true dan Anda ingin Auto Loader menyiapkan layanan pemberitahuan untuk Anda:
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
cloudFiles.resourceGroup |
Tidak | String apa saja | Grup Sumber Daya Azure tempat akun penyimpanan dibuat. |
cloudFiles.subscriptionId |
Tidak | String apa saja | ID Langganan Azure tempat grup sumber daya dibuat. |
databricks.serviceCredential |
Tidak | String apa saja | Nama kredensial layanan untuk Databricks Anda. Tersedia di Databricks Runtime 16.1 ke atas. |
Jika kredensial layanan Databricks tidak tersedia, Anda dapat menentukan opsi autentikasi berikut:
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
cloudFiles.clientId |
Tidak | String apa saja | ID klien atau ID aplikasi dari perwakilan layanan. |
cloudFiles.clientSecret |
Tidak | String apa saja | Rahasia klien dari prinsipal layanan. |
cloudFiles.connectionString |
Tidak | String koneksi | String koneksi untuk akun penyimpanan, berdasarkan kunci akses akun atau tanda tangan akses bersama (SAS). |
cloudFiles.tenantId |
Tidak | String apa saja | ID Penyewa Azure tempat perwakilan layanan dibuat. |
Tentukan opsi berikut ini hanya jika Anda mengatur cloudFiles.useNotifications = true dan Anda ingin Auto Loader menggunakan antrean yang sudah ada:
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
cloudFiles.queueName |
Tidak | String apa saja | Nama dari antrean Azure. Jika ditentukan, sumber file cloud secara langsung menggunakan peristiwa dari antrean ini alih-alih menyiapkan layanan Azure Event Grid dan Queue Storage sendiri. Dalam hal ini, databricks.serviceCredential atau cloudFiles.connectionString Anda hanya memerlukan izin membaca pada antrean. |
Danau Delta
Opsi berikut berlaku saat membaca dari tabel Delta Lake menggunakan spark.readStream.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
allowSourceColumnDrop |
Tidak | Nomor versi atau always |
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 | Nomor versi atau always |
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 | Nomor versi atau always |
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 | String regex Java | 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 |
true, false |
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 |
true, 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 |
true, 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 |
true, 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 Menggunakan umpan data perubahan pada Azure Databricks. |
schemaTrackingLocation |
Tidak | String jalur | 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 |
true, 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 | String tanda waktu seperti 2019-01-01T00:00:00.000Z atau string tanggal seperti 2019-01-01 |
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. |
startingVersion |
Versi terbaru tersedia | Bilangan bulat positif, 0, atau latest |
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 |
true, 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 | Nilai yang valid | Description |
|---|---|---|---|
assign |
Tidak | String JSON seperti {"topicA":[0,1],"topicB":[2,4]} |
Partisi tertentu untuk dikonsumsi. Anda harus menentukan tepat salah subscribesatu opsi , subscribePattern, atau assign . |
failOnDataLoss |
true |
true, false |
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.Databricks memperkirakan secara konservatif apakah data mungkin telah hilang. Namun, ini dapat menyebabkan alarm palsu. |
fetchoffset.numretries |
3 |
Bilangan bulat positif atau 0 |
Jumlah percobaan ulang saat mengambil offset Kafka gagal. |
fetchoffset.retryintervalms |
1000 |
Bilangan bulat positif atau 0 |
Interval dalam milidetik antara percobaan ulang pengambilan offset. |
groupIdPrefix |
spark-kafka-source (streaming), spark-kafka-relation (batch) |
String apa saja | 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. |
kafka.group.id |
Tidak | String apa saja | ID grup konsumen Kafka untuk digunakan saat membaca. Gunakan dengan hati-hati: kueri yang berbagi ID grup yang sama saling mengganggu dan mungkin hanya membaca sebagian data. Ini dapat terjadi saat menjalankan beban kerja batch dan streaming bersamaan, atau saat memulai ulang kueri dengan cepat. Jika diatur, groupIdPrefix diabaikan. Untuk meminimalkan masalah, atur konfigurasi session.timeout.ms konsumen Kafka ke nilai kecil. |
includeHeaders |
false |
true, false |
Apakah akan menyertakan header pesan Kafka sebagai kolom dalam output. |
kafkaconsumer.polltimeoutms |
Tidak | Bilangan bulat positif | Batas waktu dalam milidetik untuk panggilan konsumen poll() Kafka. |
kafka.bootstrap.servers |
Tidak | Daftar string yang host:port dipisahkan koma |
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 | Bilangan bulat positif | Jumlah maksimum rekaman untuk setiap partisi Spark. Saat diatur, konektor membagi partisi Kafka sehingga setiap partisi Spark membaca paling banyak rekaman sebanyak ini. Anda juga dapat menggunakan opsi ini dengan minPartitions. Saat kedua opsi diatur, Spark menggunakan opsi mana pun yang menghasilkan lebih banyak partisi. |
minPartitions |
Tidak | Bilangan bulat positif | 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. Opsi ini menginisialisasi ulang konsumen Kafka untuk setiap pemicu, yang mungkin memengaruhi performa dengan SSL. |
startingOffsets |
latest (streaming), earliest (batch) |
earliest, , latestatau string offset JSON |
Offset tempat kueri memulai bacaan. Dalam string JSON, -1 adalah offset terbaru.
-2 adalah offset paling awal. Misalnya: {"topicA":{"0":23,"1":-2}}.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 | String tanda waktu JSON seperti {"topicA":{"0":1000,"1":2000}} |
Daftar memulai offset untuk setiap partisi, ditentukan sebagai tanda waktu dalam milidetik. Ketika tidak ada offset untuk tanda waktu, perilaku kueri ditentukan oleh startingOffsetsByTimestampStrategy.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 |
error, latest |
Strategi yang digunakan ketika tidak ada offset yang ditemukan untuk tanda waktu yang ditentukan di startingOffsetsByTimestamp atau startingTimestamp.
error menimbulkan pengecualian.
latest menggunakan offset terbaru yang tersedia. |
startingTimestamp |
Tidak | Bilangan bulat positif atau 0 |
Tanda waktu mulai global dalam milidetik yang berlaku untuk semua partisi. Ketika tidak ada offset untuk tanda waktu, perilaku dikendalikan oleh startingOffsetsByTimestampStrategy. |
subscribe |
Tidak | Daftar nama topik yang dipisahkan koma | Topik untuk berlangganan. Anda harus menentukan tepat salah subscribesatu opsi , subscribePattern, atau assign . |
subscribePattern |
Tidak | String regex Java | Pola yang digunakan untuk berlangganan topik. Anda harus menentukan tepat salah subscribesatu opsi , subscribePattern, atau assign . Contohnya, topic.*. |
Opsi berikut hanya berlaku untuk streaming bacaan dengan spark.readStream.format("kafka"):
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
bytesEstimateWindowLength |
300s |
String durasi seperti 10m atau 600s |
Jendela waktu yang digunakan untuk memperkirakan byte yang estimatedTotalBytesBehindLatest tersisa untuk metrik. Lihat Ambil metrik Kafka. |
maxOffsetsPerTrigger |
Tidak | Bilangan bulat positif | Jumlah maksimum offset untuk diproses per interval pemicu. Offset didistribusikan secara proporsional di seluruh partisi topik. |
maxTriggerDelay |
15m |
String durasi seperti 10m atau 600s |
Waktu maksimum untuk minOffsetsPerTrigger menunggu terakumulasi sebelum memicu. |
minOffsetsPerTrigger |
Tidak | Bilangan bulat positif | Jumlah minimum offset untuk terakumulasi sebelum memicu mikro-batch. Ketika maxTriggerDelay tercapai, mikro-batch berjalan terlepas dari itu. |
Untuk opsi offset yang hanya berlaku untuk pembacaan batch dengan spark.read.format("kafka"), lihat Opsi Kafka DataFrameReader.
Autentikasi
Databricks merekomendasikan penggunaan kredensial layanan Unity Catalog untuk mengautentikasi ke layanan Kafka yang dikelola cloud (AWS MSK, Azure Event Hubs, atau Google Cloud Managed Kafka).
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
databricks.serviceCredential |
Tidak | String apa saja | Nama kredensial layanan Unity Catalog untuk mengautentikasi ke layanan Kafka yang dikelola cloud. Tersedia di Databricks Runtime 16.1 ke atas. |
databricks.serviceCredential.scope |
Tidak | String apa saja | Cakupan OAuth untuk kredensial layanan. Atur ini hanya ketika Azure Databricks tidak dapat secara otomatis menyimpulkan cakupan untuk layanan Kafka Anda. |
Saat kredensial layanan tidak tersedia, gunakan opsi SASL/SSL (diteruskan sebagai kafka.* properti). Saat Anda menggunakan kredensial layanan, Anda tidak perlu menentukan kafka.sasl.mechanism, , kafka.sasl.jaas.configatau kafka.security.protocol.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
kafka.security.protocol |
Tidak | String protokol keamanan, seperti SASL_SSL, , SSLPLAINTEXT |
Protokol keamanan untuk komunikasi broker. |
kafka.sasl.mechanism |
Tidak | String mekanisme SASL, seperti PLAIN, , SCRAM-SHA-256SCRAM-SHA-512, OAUTHBEARER,AWS_MSK_IAM |
Mekanisme SASL. |
kafka.sasl.jaas.config |
Tidak | String konfigurasi JAAS | String konfigurasi login JAAS. |
kafka.sasl.login.callback.handler.class |
Tidak | Nama kelas yang sepenuhnya memenuhi syarat | Nama kelas yang sepenuhnya memenuhi syarat dari handler panggilan balik login untuk autentikasi SASL. |
kafka.sasl.client.callback.handler.class |
Tidak | Nama kelas yang sepenuhnya memenuhi syarat | Nama kelas yang sepenuhnya memenuhi syarat dari handler panggilan balik klien untuk autentikasi SASL. |
kafka.ssl.truststore.location |
Tidak | String jalur file | Jalur ke file penyimpanan kepercayaan SSL. |
kafka.ssl.truststore.password |
Tidak | String apa saja | Kata sandi untuk file penyimpanan kepercayaan SSL. |
kafka.ssl.keystore.location |
Tidak | String jalur file | Jalur ke file penyimpanan kunci SSL. |
kafka.ssl.keystore.password |
Tidak | String apa saja | Kata sandi untuk file penyimpanan kunci SSL. |
Untuk instruksi penyiapan autentikasi lengkap, lihat Autentikasi.
Pub/Sub
Gunakan opsi ini dengan spark.readStream.format("pubsub") untuk berlangganan Google Pub/Sub. Opsi subscriptionId, topicId, dan projectId diperlukan.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
subscriptionId |
Tidak | String apa saja | Required. ID langganan Pub/Sub. Konektor membuat langganan jika tidak ada. |
topicId |
Tidak | String apa saja | Required. ID topik Pub/Sub. |
projectId |
Tidak | String apa saja | Required. ID proyek Google Cloud. |
numFetchPartitions |
Setengah jumlah pelaksana yang tersedia pada inisialisasi aliran | Bilangan bulat positif | Jumlah tugas Spark paralel yang mengambil baris dari langganan. |
maxBytesPerTrigger |
Tidak | Bilangan bulat positif | Batas sementara pada jumlah byte yang akan diproses per mikro-batch. |
maxRecordsPerFetch |
1000 |
Bilangan bulat positif | Jumlah baris yang diambil per tugas sebelum diproses. |
maxFetchPeriod |
10s |
String durasi seperti 1s atau 1m |
Durasi waktu bagi setiap tugas untuk mengambil data sebelum memproses baris. Azure Databricks merekomendasikan penggunaan nilai default. |
deleteSubscriptionOnStreamStop |
false |
true, false |
Ketika true, langganan, dari subscriptionId, dihapus saat kueri streaming berakhir. |
serviceCredential |
Tidak | String apa saja | Nama kredensial layanan Azure Databricks untuk mengautentikasi ke Pub/Sub. Tersedia di Databricks Runtime 16.1 ke atas. |
clientEmail |
Tidak | String alamat email | Alamat email Akun Layanan Google. Diperlukan saat tidak menggunakan kredensial layanan. |
clientId |
Tidak | String apa saja | ID klien akun Layanan Google. Diperlukan saat tidak menggunakan kredensial layanan. |
privateKey |
Tidak | String kunci privat | Kunci privat untuk Akun Layanan Google. Diperlukan saat tidak menggunakan kredensial layanan. |
privateKeyId |
Tidak | String apa saja | ID kunci privat untuk Akun Layanan Google. Diperlukan saat tidak menggunakan kredensial layanan. |
Untuk informasi selengkapnya tentang Pub/Sub, lihat Berlangganan Google Pub/Sub.
Pulsar
Gunakan opsi ini dengan spark.readStream.format("pulsar") untuk melakukan streaming dari Apache Pulsar. Tersedia di Databricks Runtime 14.1 ke atas.
Opsi berikut diperlukan. Anda harus menentukan salah satu dari topic, topics, atau topicsPattern.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
service.url |
Tidak | String URL layanan Pulsar | Pulsar serviceURL untuk layanan Pulsar, misalnya pulsar://broker.example.com:6650. |
topic |
Tidak | String apa saja | Satu nama topik untuk dikonsumsi. |
topics |
Tidak | Daftar nama topik yang dipisahkan koma | Daftar nama topik yang dipisahkan koma untuk dikonsumsi. |
topicsPattern |
Tidak | String regex Java | String regex Java untuk mencocokkan nama topik. |
Opsi berikut ini juga didukung:
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
admin.url |
Tidak | String URL | URL HTTP layanan admin Pulsar. Diperlukan saat maxBytesPerTrigger diatur. |
allowDifferentTopicSchemas |
false |
true, false |
Jika beberapa topik dengan skema yang berbeda dibaca, gunakan opsi ini untuk menonaktifkan deserialisasi nilai topik berbasis skema otomatis. Hanya nilai mentah yang dikembalikan ketika ini adalah true. |
failOnDataLoss |
true |
true, false |
Apakah akan gagal kueri saat data hilang. Misalnya, kehilangan data mungkin terjadi ketika topik dihapus atau pesan kedaluwarsa karena kebijakan penyimpanan. |
maxBytesPerTrigger |
Tidak | Bilangan bulat positif | Batas sementara pada jumlah byte yang akan diproses per mikro-batch. Membutuhkan admin.url. |
pollTimeoutMs |
120000 |
Bilangan bulat positif | Batas waktu untuk membaca pesan dari Pulsar dalam milidetik. |
predefinedSubscription |
Tidak | String apa saja | Nama langganan yang telah ditentukan sebelumnya yang digunakan oleh konektor untuk melacak kemajuan aplikasi Spark. |
startingOffsets |
latest |
latest, , earliestatau string offset JSON |
Dari mana harus mulai membaca. |
subscriptionPrefix |
Tidak | String apa saja | Awalan yang digunakan oleh konektor untuk menghasilkan langganan acak untuk melacak kemajuan aplikasi Spark. |
waitingForNonExistedTopic |
false |
true, false |
Apakah konektor menunggu hingga topik yang diinginkan dibuat. |
Anda dapat menentukan konfigurasi klien, admin, dan pembaca Pulsar tambahan menggunakan pola opsi berikut:
| Pola | Opsi konfigurasi |
|---|---|
pulsar.admin.* |
Konfigurasi admin Pulsar |
pulsar.client.* |
Konfigurasi klien Pulsar, termasuk opsi autentikasi seperti pulsar.client.authPluginClassName dan pulsar.client.authParams. |
pulsar.reader.* |
Konfigurasi pembaca Pulsar |
Untuk informasi selengkapnya tentang opsi autentikasi klien dan admin Pulsar, lihat Autentikasi.
Autentikasi
Azure Databricks mendukung autentikasi truststore dan keystore untuk Pulsar. Azure Databricks merekomendasikan penggunaan rahasia untuk menyimpan detail autentikasi. Lihat Manajemen Rahasia.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
pulsar.client.authPluginClassName |
Tidak | Nama kelas yang sepenuhnya memenuhi syarat | Nama kelas plugin autentikasi yang sepenuhnya memenuhi syarat. Contohnya, org.apache.pulsar.client.impl.auth.AuthenticationTls. |
pulsar.client.authParams |
Tidak | String kredensial | Kredensial autentikasi diteruskan ke plugin autentikasi sebagai string. Contohnya, tlsCertFile:/path/to/my-role.cert.pem,tlsKeyFile:/path/to/my-role.key-pk8.pem. |
pulsar.client.useKeyStoreTls |
false |
true, false |
Ketika true, mengaktifkan konfigurasi TLS berbasis KeyStore alih-alih file format PEM. |
pulsar.client.tlsTrustStoreType |
Tidak | String apa saja | Format file penyimpanan kepercayaan TLS. Contohnya, JKS. |
pulsar.client.tlsTrustStorePath |
Tidak | String jalur file | Jalur ke file penyimpanan kepercayaan TLS yang berisi sertifikat CA tepercaya. Diperlukan saat pulsar.client.useKeyStoreTls adalah true. |
pulsar.client.tlsTrustStorePassword |
Tidak | String apa saja | Kata sandi untuk file penyimpanan kepercayaan TLS. |
Jika aliran menggunakan PulsarAdmin, Anda juga dapat mengatur opsi berikut:
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
pulsar.admin.authPluginClassName |
Tidak | Nama kelas yang sepenuhnya memenuhi syarat | Nama kelas plugin autentikasi yang sepenuhnya memenuhi syarat untuk klien admin Pulsar. |
pulsar.admin.authParams |
Tidak | String kredensial | Kredensial autentikasi untuk plugin autentikasi klien admin Pulsar. |
pulsar.admin.useTls |
Tidak |
true, false |
Apakah akan menggunakan TLS untuk koneksi klien admin Pulsar. |
pulsar.admin.tlsAllowInsecureConnection |
Tidak |
true, false |
Apakah akan mengizinkan koneksi TLS yang tidak aman untuk klien admin Pulsar. |
pulsar.admin.tlsTrustCertsFilePath |
Tidak | String jalur file | Jalur ke file sertifikat TLS tepercaya untuk klien admin Pulsar. |
pulsar.admin.useKeyStoreTls |
Tidak |
true, false |
Apakah akan menggunakan TLS berbasis KeyStore untuk klien admin Pulsar. |
pulsar.admin.tlsTrustStoreType |
Tidak | String apa saja | Format penyimpanan kepercayaan TLS untuk klien admin Pulsar. Contohnya, JKS. |
pulsar.admin.tlsTrustStorePath |
Tidak | String jalur file | Jalur ke file penyimpanan kepercayaan TLS untuk klien admin Pulsar. Diperlukan saat pulsar.admin.useKeyStoreTls adalah true. |
pulsar.admin.tlsTrustStorePassword |
Tidak | String apa saja | Kata sandi untuk penyimpanan kepercayaan TLS klien admin Pulsar. |
Untuk contoh autentikasi, lihat Mengautentikasi ke Pulsar.
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
Opsi berikut berlaku saat menulis file Avro.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
avroSchema |
Tidak | String skema JSON | Skema Avro lengkap sebagai string JSON. Gunakan opsi ini untuk mengonversi jenis Spark SQL ke jenis Avro tertentu. Berlaku untuk membaca dan menulis file Avro. |
avroSchemaUrl |
Tidak | String URL | URL yang menunjuk ke file skema Avro. Gunakan alih-alih avroSchema ketika skema disimpan secara eksternal. Bersifat saling eksklusif dengan avroSchema. Berlaku untuk membaca dan menulis file Avro. |
compression |
snappy |
uncompressed, , deflatesnappy (default), bzip2, , xz,zstandard |
Codec kompresi yang digunakan saat menulis. Berlaku untuk membaca dan menulis file Avro. |
recordName |
topLevelRecord |
String apa saja | Nama rekaman tingkat atas dalam skema Avro output. Berlaku untuk membaca dan menulis file Avro. |
positionalFieldMatching |
false |
true, false |
Apakah akan mencocokkan kolom antara skema Spark dan skema Avro menurut posisi bidang, bukan berdasarkan nama. Berlaku untuk membaca dan menulis file Avro. |
recordNamespace |
String kosong | String apa saja | Namespace untuk rekaman tingkat atas dalam skema Avro output. Berlaku untuk membaca dan menulis file Avro. |
Danau Delta dan Apache Iceberg
Opsi berikut berlaku saat menulis tabel Delta Lake dan Apache Iceberg.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
clusterByAuto |
false |
true, 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 |
true, false |
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 dengan evolusi skema. |
overwriteSchema |
Tidak |
true, false |
Apakah akan mengganti skema tabel dan pemartisian saat menimpa.
mode("overwrite") Membutuhkan tanpa replaceWhere. Tidak dapat digunakan dengan partitionOverwriteMode. Berlaku untuk Memperbarui skema tabel dengan evolusi skema. |
partitionOverwriteMode |
Tidak |
static, dynamic |
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. Berlaku untuk Menimpa data secara selektif dengan Delta Lake. |
replaceOn |
Tidak | String ekspresi boolean | 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 | 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 | String ekspresi predikat | Ekspresi predikat. Secara atomik hanya menimpa rekaman yang cocok dengan predikat. Berlaku untuk Menimpa data secara selektif dengan Delta Lake. |
targetAlias |
Tidak | String apa saja | 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 apa saja | 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 | Bilangan bulat yang meningkat secara monoton | 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 |
true, false |
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 apa saja | String yang ditentukan pengguna ditambahkan ke metadata penerapan untuk operasi tulis. Terlihat dalam output .DESCRIBE HISTORY Berlaku untuk Memperkaya tabel dengan metadata kustom. |
CSV
Opsi berikut berlaku saat menulis file CSV.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
charToEscapeQuoteEscaping |
\0 (tidak diaktifkan) |
Satu karakter | Karakter yang digunakan untuk menghindari karakter escape ketika berbeda dari karakter kutipan. Berlaku untuk csv (DataFrameWriter). |
compression |
none |
none (default), , bzip2gzip, lz4, snappy, , deflate,zstd |
Codec kompresi yang digunakan saat menulis. Berlaku untuk csv (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
String format tanggal | Format string untuk nilai kolom tanggal. Berlaku untuk csv (DataFrameWriter). |
emptyValue |
String kosong | String apa saja | String yang ditulis untuk nilai kosong (non-null). Berlaku untuk csv (DataFrameWriter). |
encoding |
UTF-8 |
java.nio.charset.Charset Nama |
Pengodean karakter untuk file output. Berlaku untuk csv (DataFrameWriter). |
escape |
\ |
Satu karakter | Karakter yang digunakan untuk menghindari nilai yang dikutip. Berlaku untuk csv (DataFrameWriter). |
escapeQuotes |
true |
true, false |
Apakah akan lolos dari karakter kutipan di dalam nilai bidang yang dikutip. Berlaku untuk csv (DataFrameWriter). |
header |
false |
true, false |
Apakah akan menulis nama kolom sebagai baris pertama output. Berlaku untuk csv (DataFrameWriter). |
ignoreLeadingWhiteSpace |
false |
true, false |
Apakah akan memangkas spasi kosong di depan dari nilai saat menulis. Berlaku untuk csv (DataFrameWriter). |
ignoreTrailingWhiteSpace |
false |
true, false |
Apakah akan memangkas spasi kosong berikutnya dari nilai saat menulis. Berlaku untuk csv (DataFrameWriter). |
lineSep |
\n |
Sebuah string | String pemisah baris yang digunakan di antara rekaman. Berlaku untuk csv (DataFrameWriter). |
locale |
en-US |
Pengidentifikasi java.util.Locale |
Sebuah pengenal java.util.Locale. Lokal Java diidentifikasi yang memengaruhi tanggal default, tanda waktu, dan penguraian desimal dalam CSV. |
nullValue |
String kosong | String apa saja | String ditulis untuk nilai null. Berlaku untuk csv (DataFrameWriter). |
quote |
" |
Satu karakter | Karakter yang digunakan untuk mengutip nilai bidang yang berisi pemisah. Berlaku untuk csv (DataFrameWriter). |
quoteAll |
false |
true, false |
Apakah akan mengapit semua nilai bidang dalam tanda kutip terlepas dari kontennya. Berlaku untuk csv (DataFrameWriter). |
sep |
, |
Sebuah string | Karakter pemisah bidang. Berlaku untuk csv (DataFrameWriter). |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
String format tanda waktu | String format untuk nilai kolom tanda waktu. Berlaku untuk csv (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
String format tanda waktu | Format string untuk tanda waktu tanpa nilai kolom zona waktu (TimestampNTZType). |
Excel
Opsi berikut berlaku saat menulis file Excel.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
dataAddress |
Tidak | Nama lembar atau string referensi sel | 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 |
String format tanggal Excel | Excel string format sel yang diterapkan ke kolom Date. Menggunakan sintaks format Excel. |
headerRows |
0 |
0, 1 |
Apakah akan menulis nama kolom sebagai baris pertama. |
timestampNTZFormat |
yyyy-mm-dd hh:mm:ss |
String format tanda waktu Excel | Excel string format sel yang diterapkan ke kolom TimestampNTZ dan Timestamp. Menggunakan sintaks format Excel. |
version |
xlsx |
xlsx, xls |
Versi format file Excel untuk ditulis. |
JSON
Opsi berikut berlaku saat menulis file JSON.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
compression |
none |
none, , bzip2gzip, lz4, snappy, , deflate,zstd |
Codec kompresi yang digunakan saat menulis. Berlaku untuk json (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
String format tanggal | Format string untuk nilai kolom tanggal. Berlaku untuk json (DataFrameWriter). |
encoding |
UTF-8 |
java.nio.charset.Charset Nama |
Pengodean karakter untuk file output. Berlaku untuk json (DataFrameWriter). |
ignoreNullFields |
nilai dari spark.sql.jsonGenerator.ignoreNullFields |
true, false |
Apakah akan menghilangkan bidang dengan nilai null dari output JSON. Berlaku untuk json (DataFrameWriter). |
lineSep |
\n |
Sebuah string | String pemisah baris yang digunakan di antara rekaman. Berlaku untuk json (DataFrameWriter). |
locale |
en-US |
Pengidentifikasi java.util.Locale |
Pengidentifikasi lokal Java yang memengaruhi tanggal default, tanda waktu, dan penguraian desimal dalam JSON. |
pretty |
false |
true, false |
Apakah akan mengaktifkan output JSON cantik (inden, multibaris). |
sortKeys |
false |
true, 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 tanda waktu | String format untuk nilai kolom tanda waktu. Berlaku untuk json (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
String format tanda waktu | Format string untuk tanda waktu tanpa nilai kolom zona waktu (TimestampNTZType). |
writeNonAsciiCharacterAsCodePoint |
false |
true, false |
Apakah akan mengodekan karakter non-ASCII sebagai \uXXXX urutan escape Unicode alih-alih karakter UTF-8 harfiah dalam output. |
ORC
Opsi berikut berlaku saat menulis file ORC.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
compression |
zstd |
none, , uncompressedsnappy, zlib, lzo, zstd, , lz4,brotli |
Codec kompresi yang digunakan saat menulis. Berlaku untuk orc (DataFrameWriter). |
Parket
Opsi berikut berlaku saat menulis file Parquet.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
compression |
snappy |
none, , uncompressedsnappy, gzip, lzo, brotli, lz4, , lz4_raw,zstd |
Codec kompresi yang digunakan saat menulis. Berlaku untuk parquet (DataFrameWriter). |
spark.sql.parquet.outputTimestampType |
INT96 |
INT96, , TIMESTAMP_MICROSTIMESTAMP_MILLIS |
Jenis fisik yang digunakan untuk mengodekan kolom tanda waktu. Gunakan INT96 untuk kompatibilitas dengan pembaca Parquet warisan yang tidak mendukung jenis tanda waktu standar. |
Teks
Opsi berikut berlaku saat menulis file teks.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
compression |
none |
none, , bzip2gzip, lz4, snappy, , deflate,zstd |
Codec kompresi yang digunakan saat menulis. Berlaku untuk teks (DataFrameWriter). |
encoding |
UTF-8 |
java.nio.charset.Charset Nama |
Pengodean karakter untuk file output. |
lineSep |
\n |
Sebuah string | String pemisah baris yang digunakan di antara rekaman. Berlaku untuk teks (DataFrameWriter). |
XML
Opsi berikut berlaku saat menulis file XML.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
arrayElementName |
item |
String apa saja | Nama elemen untuk elemen array yang tidak memiliki nama eksplisit. Berlaku untuk xml (DataFrameWriter). |
attributePrefix |
_ |
String apa saja | Awalan diawali ke nama bidang yang sesuai dengan atribut XML. Berlaku untuk xml (DataFrameWriter). |
compression |
none |
none, , bzip2gzip, lz4, snappy, , deflate,zstd |
Codec kompresi yang digunakan saat menulis. Berlaku untuk xml (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
String format tanggal | Format string untuk nilai kolom tanggal. Berlaku untuk xml (DataFrameWriter). |
declaration |
version="1.0" encoding="UTF-8" standalone="yes" |
String deklarasi XML, atau string kosong untuk ditekan | 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 |
java.nio.charset.Charset Nama |
Pengodean karakter untuk file output. Berlaku untuk xml (DataFrameWriter). |
indent |
4 spasi | String apa saja | 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 |
Pengidentifikasi java.util.Locale |
Pengidentifikasi lokal Java yang memengaruhi tanggal, tanda waktu, dan pemformatan desimal default dalam XML. |
nullValue |
null |
String apa saja | String yang ditulis untuk nilai null. Ketika diatur ke null, atribut dan elemen turunan untuk bidang null dihilangkan. Berlaku untuk xml (DataFrameWriter). |
rootTag |
ROWS |
String apa saja | Tag elemen akar yang membungkus semua elemen baris dalam output. Berlaku untuk xml (DataFrameWriter). |
rowTag |
ROW |
String apa saja | Tag elemen yang mewakili baris dalam output. Berlaku untuk xml (DataFrameWriter). |
singleVariantColumn |
Tidak | String nama kolom | 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 tanda waktu | String format untuk nilai kolom tanda waktu. Berlaku untuk xml (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
String format tanda waktu | Format string untuk tanda waktu tanpa nilai kolom zona waktu. Berlaku untuk xml (DataFrameWriter). |
validateName |
true |
true, false |
Apakah akan melemparkan pengecualian jika nama kolom bukan pengidentifikasi elemen XML yang valid. Berlaku untuk xml (DataFrameWriter). |
valueTag |
_VALUE |
String apa saja | 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
Opsi berikut berlaku untuk semua operasi penulisan streaming.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
checkpointLocation |
Tidak ada (diperlukan) | String jalur | 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 | String jalur | Jalur output untuk sink streaming berbasis file seperti Parquet. Hanya berlaku untuk format berbasis file. |
Sink konsol
Opsi berikut berlaku saat menulis aliran ke sink konsol.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
numRows |
20 |
Bilangan bulat positif | Jumlah baris yang ditampilkan untuk setiap mikro-batch saat menulis ke sink konsol. |
truncate |
true |
true, false |
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 | Nilai yang valid | Description |
|---|---|---|---|
mergeSchema |
false |
true, 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 dengan evolusi skema. |
userMetadata |
Tidak | String apa saja | 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 | Nilai yang valid | Description |
|---|---|---|---|
retention |
Tidak | String waktu seperti 7 days atau 24 hours |
Berapa lama untuk mempertahankan file metadata sink yang digunakan untuk toleransi dan pemadatan kesalahan. Ketika tidak diatur, file metadata dipertahankan tanpa batas waktu. |
Sink Kafka
Opsi berikut berlaku saat menulis ke Kafka.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
kafka.bootstrap.servers |
Tidak | Daftar string yang host:port dipisahkan koma |
Required. Daftar alamat broker host:port Kafka yang dipisahkan koma. |
topic |
Tidak | String apa saja | Topik Kafka target untuk semua baris. Diperlukan jika DataFrame tidak menyertakan topic kolom. |
kafka.* |
Tidak | Nilai konfigurasi produsen Kafka apa pun | Setiap konfigurasi produsen Kafka diawali dengan kafka.. Contohnya, kafka.compression.type. |
Sink memori
Opsi berikut berlaku saat menulis aliran ke sink memori.
| Key | Default | Nilai yang valid | Description |
|---|---|---|---|
queryName |
Tidak ada (diperlukan) | String apa saja | Nama tabel dalam memori tempat kueri menulis. Diperlukan untuk sink memori. Juga dapat dikonfigurasi melalui .queryName(). |
mode |
exactlyonce |
exactlyonce, atleastonce |
Jaminan pengiriman untuk sink memori.
exactlyonce menggunakan mode mikro-batch dengan semantik sekali persis.
atleastonce menggunakan mode berkelanjutan dengan semantik setidaknya sekali. |
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 | Nilai yang valid | Description |
|---|---|---|---|
schemaId |
Tidak | Bilangan bulat ID skema | 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 | Nilai properti klien Confluent SR apa pun | 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 | Nilai yang valid | Description |
|---|---|---|---|
mode |
FAILFAST |
FAILFAST, PERMISSIVE |
Cara menangani catatan yang rusak.
FAILFAST melempar pengecualian.
PERMISSIVE mengatur bidang cacat ke null. Berlaku untuk from_protobuf. |
recursive.fields.max.depth |
-1 (dinonaktifkan) |
0 ke 10 |
Kedalaman rekursi maksimum untuk bidang Protobuf rekursif. Atur ke 0 untuk menonaktifkan dukungan bidang rekursif. Berlaku untuk from_protobuf. |
convert.any.fields.to.json |
false |
true, false |
Apakah akan mengonversi bidang Protobuf Any menjadi string JSON alih-alih STRUCT. Berlaku untuk from_protobuf. |
emit.default.values |
false |
true, 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 |
true, false |
Apakah akan merender bidang enum sebagai nilai bilangan bulat, bukan string. Berlaku untuk from_protobuf. |
upcast.unsigned.ints |
false |
true, 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 |
true, 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 |
true, false |
Apakah akan mempertahankan jenis pesan Protobuf kosong dalam skema output dengan menyisipkan kolom dummy. Berlaku untuk from_protobuf. |
schema.registry.subject |
Tidak | String apa saja | Nama subjek Registri Skema. Diperlukan saat menggunakan varian from_protobuf Registri Skema dan to_protobuf. |
schema.registry.address |
Tidak | String host:port |
Alamat Registri Skema (host dan port). Diperlukan saat menggunakan varian from_protobuf Registri Skema dan to_protobuf. |
schema.registry.protobuf.name |
Tidak | String apa saja | Menentukan pesan Protobuf mana yang akan digunakan saat subjek registri skema berisi beberapa pesan. Optional. |
schema.registry.schema.evolution.mode |
"restart" |
"restart", "none" |
Bagaimana perubahan skema ditangani saat skema-id yang lebih baru terdeteksi dalam rekaman masuk.
"restart" mengakhiri kueri dengan UnknownFieldException; mengonfigurasi pekerjaan untuk memulai ulang pada kegagalan untuk mengambil perubahan.
"none" mengabaikan perubahan skema-id dan mengurai rekaman yang lebih baru dengan skema asli. |
confluent.schema.registry.<option> |
— | Nilai opsi klien Confluent Schema Registry yang valid | Berikan opsi klien Confluent Schema Registry menggunakan awalan "confluent.schema.registry". Misalnya, atur "confluent.schema.registry.basic.auth.credentials.source" ke "USER_INFO" dan "confluent.schema.registry.basic.auth.user.info" ke "<KEY>:<SECRET>" untuk mengonfigurasi autentikasi dasar. |
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")))