Bagikan melalui


from_csv Fungsi

Berlaku untuk:check ditandai ya pemeriksaan Databricks SQL ditandai ya Databricks Runtime

Mengembalikan nilai struct dengan csvStr dan schema.

Sintaks

from_csv(csvStr, schema [, options])

Argumen

  • csvStr: Ekspresi STRING yang menentukan baris data CSV.
  • schema: String literal atau pemanggilan fungsi schema_of_csv.
  • options: STRING MAP<opsional, STRING> literal yang menentukan direktif.

Kembali

STRUCT dengan nama bidang dan jenis yang cocok dengan definisi skema.

csvStr harus terbentuk dengan baik sehubungan schema dengan dan options. schema harus didefinisikan sebagai nama kolom dan pasangan jenis data yang dipisahkan koma seperti yang digunakan dalam misalnya CREATE TABLE.

options, jika disediakan, dapat berupa salah satu hal berikut:

  • sep (default ,): mengatur pemisah untuk setiap bidang dan nilai. Pemisah ini bisa berupa satu atau beberapa karakter.
  • encoding (UTF-8 default): mendekode file CSV dengan jenis pengodean yang ditentukan.
  • quote (default "): mengatur satu karakter yang digunakan untuk melarikan diri dari nilai yang dikutip di mana pemisah dapat menjadi bagian dari nilai. Jika Anda ingin menonaktifkan kutipan, Anda perlu mengatur bukan null tetapi string kosong. Perilaku ini berbeda dari com.databricks.spark.csv.
  • escape (default \): menetapkan satu karakter yang digunakan untuk melarikan diri dari tanda kutip di dalam nilai yang sudah dikutip.
  • charToEscapeQuoteEscaping (default escape atau \0): mengatur satu karakter yang digunakan untuk melarikan diri untuk karakter kutipan. Nilai defaultnya adalah karakter escape ketika escape karakter dan quote berbeda, \0 jika tidak.
  • comment (string kosong default): mengatur satu karakter yang digunakan untuk melompati baris yang dimulai dengan karakter ini. Secara default, ini dinonaktifkan.
  • header (default false): menggunakan baris pertama sebagai nama kolom.
  • enforceSchema (default true): Jika diatur ke true, skema yang ditentukan atau disimpulkan diterapkan secara paksa ke file sumber data, dan header dalam file CSV diabaikan. Jika opsi diatur ke false, skema divalidasi terhadap semua header dalam file CSV dalam kasus ketika opsi header diatur ke true. Nama bidang dalam nama skema dan kolom di header CSV diperiksa oleh posisinya dengan mempertimbangkan spark.sql.caseSensitive. Meskipun nilai defaultnya benar, disarankan untuk menonaktifkan opsi enforceSchema untuk menghindari hasil yang salah.
  • inferSchema (default false): menyimpulkan skema input secara otomatis dari data. Ini membutuhkan satu pass tambahan atas data.
  • samplingRatio (default 1.0): mendefinisikan sebagian kecil baris yang digunakan untuk inferensi skema.
  • ignoreLeadingWhiteSpace (default false): bendera yang menunjukkan apakah spasi kosong di depan atau tidak dari nilai yang dibaca harus dilewati.
  • ignoreTrailingWhiteSpace (default false): bendera yang menunjukkan apakah spasi kosong di belakang atau tidak dari nilai yang dibaca harus dilewati.
  • nullValue (string kosong default): mengatur representasi string dari nilai null.
  • emptyValue (string kosong default): mengatur representasi string dari nilai kosong.
  • nanValue (default NaN): mengatur representasi string dari nilai bukan angka.
  • positiveInf (default Inf): menetapkan representasi string dari nilai tak terbatas positif.
  • negativeInf (default -Inf): mengatur representasi string dari nilai tak terbatas negatif.
  • dateFormat (default yyyy-MM-dd): mengatur string yang menunjukkan format tanggal. Format tanggal kustom mengikuti format pada pola Datetime. Ini berlaku untuk jenis tanggal.
  • timestampFormat (default yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): mengatur string yang menunjukkan format tanda waktu. Format tanggal kustom mengikuti format pada pola Datetime. Ini berlaku untuk jenis tanda waktu.
  • maxColumns (default 20480): menentukan batas keras berapa banyak kolom yang dapat dimiliki rekaman.
  • maxCharsPerColumn (default -1): menentukan jumlah maksimum karakter yang diizinkan untuk nilai tertentu yang dibaca. Secara default, ini adalah -1 yang berarti panjang tidak terbatas
  • unescapedQuoteHandling (default STOP_AT_DELIMITER): menentukan bagaimana pengurai CSV menangani nilai dengan tanda kutip yang tidak dilepas.
    • STOP_AT_CLOSING_QUOTE: Jika tanda kutip yang tidak dilepas ditemukan dalam input, akumulasi karakter kutipan dan lanjutkan mengurai nilai sebagai nilai yang dikutip, hingga kutipan penutup ditemukan.
    • BACK_TO_DELIMITER: Jika tanda kutip yang tidak dilewati ditemukan dalam input, pertimbangkan nilai sebagai nilai yang tidak dikutip. Ini akan membuat pengurai mengakumulasi semua karakter dari nilai yang diurai saat ini hingga pemisah ditemukan. Jika tidak ada pemisah yang ditemukan dalam nilai, pengurai akan terus mengakumulasi karakter dari input hingga pemisah atau akhir baris ditemukan.
    • STOP_AT_DELIMITER: Jika tanda kutip yang tidak dilewati ditemukan dalam input, pertimbangkan nilai sebagai nilai yang tidak dikutip. Ini akan membuat pengurai mengumpulkan semua karakter sampai pemisah atau akhir baris ditemukan dalam input.
    • STOP_AT_DELIMITER: Jika tanda kutip yang tidak dilewati ditemukan dalam input, konten yang diurai untuk nilai yang ditentukan dilewati dan nilai yang ditetapkan di nullValue diproduksi sebagai gantinya.
    • RAISE_ERROR: Jika tanda kutip yang tidak dilewati ditemukan dalam input, akan TextParsingException dilemparkan.
  • mode (default PERMISSIVE): memungkinkan mode untuk menangani rekaman yang rusak selama penguraian. Ini mendukung mode tidak peka huruf besar/kecil berikut. Spark mencoba mengurai hanya kolom yang diperlukan di CSV di bawah pemangkasan kolom. Oleh karena itu, rekaman yang rusak bisa berbeda berdasarkan kumpulan bidang yang diperlukan. Perilaku ini dapat dikontrol oleh spark.sql.csv.parser.columnPruning.enabled (diaktifkan secara default).
    • PERMISSIVE: ketika memenuhi rekaman yang rusak, menempatkan string cacat ke dalam bidang yang dikonfigurasi oleh columnNameOfCorruptRecord, dan mengatur bidang cacat ke null. Untuk menyimpan rekaman yang rusak, pengguna dapat mengatur bidang jenis string bernama columnNameOfCorruptRecord dalam skema yang ditentukan pengguna. Jika skema tidak memiliki bidang , skema akan menghilangkan rekaman yang rusak selama penguraian. Rekaman dengan lebih sedikit atau lebih banyak token daripada skema bukanlah rekaman yang rusak ke CSV. Ketika memenuhi rekaman yang memiliki token lebih sedikit daripada panjang skema, mengatur null ke bidang tambahan. Ketika catatan memiliki lebih banyak token daripada panjang skema, catatan tersebut menghilangkan token tambahan.
    • FAILFAST: melempar pengecualian ketika memenuhi rekaman yang rusak.
  • columnNameOfCorruptRecord (defaultnya adalah nilai yang ditentukan dalam spark.sql.columnNameOfCorruptRecord): memungkinkan penggantian nama bidang baru yang memiliki string cacat yang dibuat oleh PERMISSIVE mode. Ini mengambil spark.sql.columnNameOfCorruptRecordalih .
  • multiLine (default false): uraikan satu rekaman, yang dapat mencakup beberapa baris.
  • locale (default en-US): mengatur lokal sebagai tag bahasa dalam format IETF BCP 47. Misalnya, ini digunakan saat mengurai tanggal dan tanda waktu.
  • lineSep (default mencakup semua \r, \r\n, dan \n): mendefinisikan pemisah baris yang harus digunakan untuk penguraian. Panjang maksimum adalah 1 karakter.
  • pathGlobFilter: pola glob opsional untuk hanya menyertakan file dengan jalur yang cocok dengan pola. Sintaksnya mengikuti org.apache.hadoop.fs.GlobFilter. Ini 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}