使用 Hive 格式插入 OVERWRITE DIRECTORY

適用于:check 標示為是 Databricks Runtime

使用 Hive SerDe 以新的值覆寫目錄中的現有資料。 必須啟用 Hive 支援,才能使用此命令。 您可以依值運算式或查詢的結果來指定插入的資料列。

語法

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

參數

  • directory_path

    目的地目錄。 關鍵字 LOCAL 會指定目錄位於本機檔案系統上。

  • row_format

    這個插入的資料列格式。 有效的選項為 SERDE 子句和 DELIMITED 子句。 SERDE 子句可用來指定這個插入的自訂 SerDe 。 或者, DELIMITED 子句可用來指定原生 SerDe 和狀態分隔符號、逸出字元、Null 字元等等。

  • file_format

    這個插入的檔案格式。 有效的選項包括 TEXTFILESEQUENCEFILERCFILEORCPARQUETAVRO 。 您也可以使用 INPUTFORMATOUTPUTFORMAT 來指定自己的輸入和輸出格式。 ROW FORMAT SERDE只能與 、 或 搭配 TEXTFILE 使用,而 ROW FORMAT DELIMITED 只能搭配 使用 TEXTFILERCFILESEQUENCEFILE

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

    要插入的值。 可以插入明確指定的值或 Null。 逗號必須用來分隔 子句中的每個值。 您可以指定一組以上的值來插入多個資料列。

  • 查詢

    產生要插入之資料列的查詢。 下列其中一種格式:

    • SELECT語句
    • TABLE語句
    • FROM語句

例子

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;