SISIPKAN DIREKTORI TIMPA DENGAN format Apache Hive

Berlaku untuk:check ditandai ya Databricks Runtime

Menimpa data yang ada di direktori dengan nilai baru menggunakan Apache Hive SerDe. Dukungan Apache 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 LOCAL kunci menentukan bahwa direktori ada di sistem file lokal.

  • row_format

    Format baris untuk sisipan ini. Opsi yang valid adalah SERDE klausa dan DELIMITED klausa. SERDE klausa dapat digunakan untuk menentukan kustom SerDe untuk sisipan ini. Atau, DELIMITED klausa dapat digunakan untuk menentukan asli SerDe 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, , SEQUENCEFILEatau RCFILE, sementara ROW FORMAT DELIMITED hanya dapat digunakan dengan TEXTFILE.

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

    Nilai yang akan disisipkan. Nilai yang ditentukan secara eksplisit atau NULL dapat disisipkan. Koma harus digunakan untuk memisahkan setiap nilai dalam klausa. Lebih dari satu set nilai dapat ditentukan untuk menyisipkan beberapa baris.

  • Query

    Kueri yang menghasilkan baris yang akan disisipkan. Salah satu 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;