INSERT OVERWRITE DIRECTORY dengan format Hive

Berlaku untuk:centang ditandai ya Databricks Runtime

Menimpa data yang ada di direktori dengan nilai baru menggunakan Hive SerDe. Dukungan Hive harus diaktifkan untuk menggunakan perintah ini. Anda menentukan baris yang disisipkan menurut ekspresi nilai atau hasil kueri.

Sintaks

INSERT OVERWRITE [ LOCAL ] DIRECTORY directory_path
    [ ROW FORMAT row_format ] [ STORED AS file_format ]
    { VALUES ( { value | NULL } [ , ... ] ) [ , ( ... ) ] | query }

Parameter

  • directory_path

    Direktori tujuan. Kata kunci LOCAL digunakan untuk menentukan bahwa direktori ada di sistem file lokal.

  • row_format

    Format baris untuk sisipan ini. Opsi yang valid adalah SERDE klausul dan DELIMITED klausa. klausa SERDE dapat digunakan untuk menentukan SerDe kustom untuk sisipan ini. Atau, DELIMITED klausul dapat digunakan untuk menentukan SerDe asli dan menyatakan pemisah, karakter escape, karakter null, dan sebagainya.

  • file_format

    Format file untuk sisipan ini. Opsi yang valid adalah TEXTFILE, SEQUENCEFILE, RCFILE, ORC, PARQUET, dan AVRO. Anda juga dapat menentukan format input dan output Anda sendiri menggunakan INPUTFORMAT dan OUTPUTFORMAT. ROW FORMAT SERDE hanya dapat digunakan dengan TEXTFILE, SEQUENCEFILE, atau RCFILE, sementara ROW FORMAT DELIMITED hanya dapat digunakan dengan TEXTFILE.

  • VALUES ( { nilai | NULL } [ , ... ] ) [ , ( … ) ]

    Nilai yang akan disisipkan. Baik nilai yang ditentukan secara eksplisit maupun NULL dapat disisipkan. Koma harus digunakan untuk memisahkan setiap nilai dalam klausul. Anda dapat menentukan lebih dari satu set nilai untuk menyisipkan beberapa baris.

  • query

    Kueri yang menghasilkan baris yang akan disisipkan. Salah satu dari format berikut:

    • Pernyataan SELECT
    • Pernyataan TABLE
    • Pernyataan FROM

Contoh

INSERT OVERWRITE LOCAL DIRECTORY '/tmp/destination'
    STORED AS orc
    SELECT * FROM test_table;

INSERT OVERWRITE LOCAL DIRECTORY '/tmp/destination'
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
    SELECT * FROM test_table;