Bagikan melalui


from_csv fungsi

Berlaku untuk: centang ditandai ya Databricks SQL centang ditandai ya 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 dari com.databricks.spark.csv.
  • escape (default \): mengatur satu karakter yang digunakan untuk keluar dari tanda kutip di dalam nilai yang sudah dikutip.
  • charToEscapeQuoteEscaping (default escape atau \0): mengatur satu karakter yang digunakan untuk meloloskan diri dari karakter kutipan. Nilai default adalah karakter escape jika karakter escape dan quote 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 (default true): 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 mempertimbangkan spark.sql.caseSensitive. Meskipun nilai defaultnya adalah true, disarankan untuk menonaktifkan opsi forceSchema untuk menghindari hasil yang salah.
  • inferSchema (default false): 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 (default false): tanda yang menunjukkan apakah spasi putih di depan dari nilai yang sedang dibaca harus dilewati atau tidak.
  • ignoreTrailingWhiteSpace (default false): 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 (default NaN): mengatur representasi string dari nilai bukan angka.
  • positiveInf (default Inf): mengatur representasi string dari nilai tak terhingga positif.
  • negativeInf (default -Inf): mengatur representasi string dari nilai tak terhingga negatif.
  • dateFormat (default yyyy-MM-dd): mengatur string yang menunjukkan format tanggal. Format tanggal kustom mengikuti format pada pola Tanggalwaktu. Ini berlaku untuk jenis tanggal.
  • timestampFormat (default yyyy-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 (default 20480): 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 terbatas
  • unescapedQuoteHandling (default STOP_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 dalam nullValue diproduksi sebagai gantinya.
    • RAISE_ERROR: Jika tanda kutip yang tidak lolos ditemukan di input, TextParsingException akan ditampilkan.
  • mode (default PERMISSIVE): 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 oleh spark.sql.csv.parser.columnPruning.enabled (diaktifkan secara bawaan).
    • PERMISSIVE: ketika memenuhi catatan yang rusak, menempatkan string yang salah ke dalam bidang yang dikonfigurasi oleh columnNameOfCorruptRecord, 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 dalam spark.sql.columnNameOfCorruptRecord): memungkinkan mengganti nama bidang baru yang memiliki string yang salah dibuat berdasarkan PERMISSIVE mode. Ini mengambil alih spark.sql.columnNameOfCorruptRecord.
  • multiLine (default false): mengurai satu catatan, yang mungkin mencakup beberapa baris.
  • locale (default en-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 mengikuti org.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}