from_csv
fungsi
Berlaku untuk: Databricks SQL
Databricks Runtime
Menghasilkan nilai struktur dengan csvStr
dan schema
.
Sintaks
from_csv(csvStr, schema [, options])
Argumen
csvStr
: Ekspresi STRING yang menentukan baris data CSV.schema
: A STRING : STRING literal atau pemanggilan dari fungsi schema_of_csv .options
: MAP opsional<STRING,STRING> literal yang menentukan direktif.
Mengembalikan
STRUKTUR dengan nama dan jenis bidang yang cocok dengan definisi skema.
csvStr
harus dibentuk dengan baik sehubungan dengan schema
dan options
.
schema
harus didefinisikan sebagai nama kolom yang dipisahkan koma dan pasangan tipe data seperti yang digunakan dalam contoh CREATE TABLE
.
options
, jika tersedia, dapat berupa salah satu dari berikut ini:
sep
(default,
): mengatur pemisah untuk setiap bidang dan nilai. Pemisah ini dapat berupa satu atau lebih karakter.encoding
(UTF-8 default): mendekode file CSV menurut jenis penyandian yang ditentukan.quote
(default"
): mengatur satu karakter yang digunakan untuk keluar dari nilai yang dikutip di mana pemisah dapat menjadi bagian dari nilai. Jika Anda ingin mematikan kutipan, Anda perlu mengatur bukan null tetapi string kosong. Perilaku ini berbeda daricom.databricks.spark.csv
.escape
(default\
): mengatur satu karakter yang digunakan untuk keluar dari tanda kutip di dalam nilai yang sudah dikutip.charToEscapeQuoteEscaping
(defaultescape
atau\0
): mengatur satu karakter yang digunakan untuk meloloskan diri dari karakter kutipan. Nilai default adalah karakter escape jika karakterescape
danquote
berbeda,\0
sebaliknya.comment
(string kosong default): mengatur satu karakter yang digunakan untuk melewatkan baris yang dimulai dengan karakter ini. Secara default, akan dinonaktifkan.- header (default
false
): menggunakan baris pertama sebagai nama kolom. enforceSchema
(defaulttrue
): Jika diatur ke true, skema yang ditentukan atau disimpulkan secara paksa diterapkan ke file sumber data, dan header dalam file CSV diabaikan. Jika opsi disetel ke false, skema divalidasi terhadap semua header dalam file CSV jika opsi header disetel ke true. Nama bidang dalam skema dan nama kolom di header CSV diperiksa berdasarkan posisinya dengan mempertimbangkanspark.sql.caseSensitive
. Meskipun nilai defaultnya adalah true, disarankan untuk menonaktifkan opsi forceSchema untuk menghindari hasil yang salah.inferSchema
(defaultfalse
): menyimpulkan skema input secara otomatis dari data. Hal ini membutuhkan satu ekstra melewati data.samplingRatio
(default 1.0): mendefinisikan fraksi baris yang digunakan untuk inferensi skema.ignoreLeadingWhiteSpace
(defaultfalse
): tanda yang menunjukkan apakah spasi putih di depan dari nilai yang sedang dibaca harus dilewati atau tidak.ignoreTrailingWhiteSpace
(defaultfalse
): tanda yang menunjukkan apakah spasi putih yang tertinggal dari nilai yang sedang dibaca harus dilewati atau tidak.nullValue
(string kosong default): mengatur representasi string dari nilai nol.emptyValue
(string kosong default): mengatur representasi string dari nilai kosong.nanValue
(defaultNaN
): mengatur representasi string dari nilai bukan angka.positiveInf
(defaultInf
): mengatur representasi string dari nilai tak terhingga positif.negativeInf
(default-Inf)
: mengatur representasi string dari nilai tak terhingga negatif.dateFormat
(defaultyyyy-MM-dd
): mengatur string yang menunjukkan format tanggal. Format tanggal kustom mengikuti format pada pola Tanggalwaktu. Ini berlaku untuk jenis tanggal.timestampFormat
(defaultyyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
): set untai yang menunjukkan format stempel waktu. Format tanggal kustom mengikuti format pada pola Tanggalwaktu. Ini berlaku untuk jenis stempel waktu.maxColumns
(default20480
): menentukan batas tegas berapa banyak kolom yang dapat dimiliki oleh sebuah record.maxCharsPerColumn
(default -1): mendefinisikan jumlah karakter maksimum yang diizinkan untuk nilai tertentu yang sedang dibaca. Secara default, ini adalah -1 yang berarti panjang tidak terbatasunescapedQuoteHandling
(defaultSTOP_AT_DELIMITER
): mendefinisikan bagaimana parser CSV menangani nilai dengan tanda kutip yang tidak lolos.STOP_AT_CLOSING_QUOTE
: Jika kuotasi yang tidak lolos ditemukan dalam input, kumpulkan karakter kuotasi dan lanjutkan menguraikan nilai sebagai nilai yang dikutip, sampai kuotasi penutup ditemukan.BACK_TO_DELIMITER
: Jika kuotasi yang tidak lolos ditemukan dalam input, anggap nilainya sebagai nilai yang tidak dikutip. Ini akan membuat parser mengumpulkan semua karakter dari nilai parsing saat ini hingga pembatas ditemukan. Jika tidak ada pemisah yang ditemukan dalam nilai, pengurai akan terus mengumpulkan karakter dari input sampai pemisah atau akhir garis ditemukan.STOP_AT_DELIMITER
: Jika kuotasi yang tidak lolos ditemukan dalam input, anggap nilainya sebagai nilai yang tidak dikutip. Ini akan membuat parser mengumpulkan semua karakter hingga pembatas atau akhir baris ditemukan di input.STOP_AT_DELIMITER
: Jika tanda kutip yang tidak lolos ditemukan di input, konten yang diuraikan untuk nilai yang ditentukan akan dilewati dan nilai yang ditetapkan dalamnullValue
diproduksi sebagai gantinya.RAISE_ERROR
: Jika tanda kutip yang tidak lolos ditemukan di input,TextParsingException
akan ditampilkan.
mode
(defaultPERMISSIVE
): memungkinkan mode untuk menangani catatan yang rusak selama penguraian. Ini mendukung mode case-insensitive berikut. Spark mencoba mengurai hanya kolom yang diperlukan dalam CSV di bawah pemangkasan kolom. Oleh karena itu, catatan yang rusak dapat berbeda berdasarkan kumpulan bidang yang diperlukan. Perilaku ini dapat dikontrol olehspark.sql.csv.parser.columnPruning.enabled
(diaktifkan secara bawaan).PERMISSIVE
: ketika memenuhi catatan yang rusak, menempatkan string yang salah ke dalam bidang yang dikonfigurasi olehcolumnNameOfCorruptRecord
, dan menyetel bidang yang salah ke nol. Untuk menyimpan catatan yang rusak, pengguna dapat mengatur bidang tipe string bernama columnNameOfCorruptRecord dalam skema yang ditentukan pengguna. Jika skema tidak memiliki bidang, skema akan menghilangkan rekaman yang rusak selama penguraian. Catatan dengan lebih sedikit atau lebih banyak token daripada skema bukanlah catatan yang rusak ke CSV. Saat memenuhi catatan yang memiliki token lebih sedikit daripada panjang skema, setel nol ke bidang tambahan. Ketika catatan memiliki lebih banyak token daripada panjang skema, itu menjatuhkan token tambahan.FAILFAST
: melempar pengecualian saat memenuhi catatan yang rusak.
columnNameOfCorruptRecord
(default adalah nilai yang ditentukan dalamspark.sql.columnNameOfCorruptRecord
): memungkinkan mengganti nama bidang baru yang memiliki string yang salah dibuat berdasarkanPERMISSIVE
mode. Ini mengambil alihspark.sql.columnNameOfCorruptRecord
.multiLine
(defaultfalse
): mengurai satu catatan, yang mungkin mencakup beberapa baris.locale
(defaulten-US
): menetapkan lokal sebagai tag bahasa dalam format IETF BCP 47. Misalnya, ini digunakan saat mengurai tanggal dan stempel waktu.lineSep
(default mencakup semua\r
,\r\n
, dan\n
): mendefinisikan pemisah baris yang harus digunakan untuk penguraian. Panjang maksimal 1 karakter.pathGlobFilter
: pola glob opsional untuk hanya menyertakan file dengan jalur yang cocok dengan pola tersebut. Sintaksisnya mengikutiorg.apache.hadoop.fs.GlobFilter
. Itu tidak mengubah perilaku penemuan partisi.
Contoh
> SELECT from_csv('1, 0.8', 'a INT, b DOUBLE');
{1,0.8}
> SELECT from_csv('26/08/2015', 'time Timestamp', map('timestampFormat', 'dd/MM/yyyy'));
{"time":2015-08-26 00:00:00}
Fungsi terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk