テーブルのROW FORMAT, STORED, INPUTFORMAT
を正しく定義して
LOAD DATA LOCAL INPATH local_dir_name
OVERWRITE INTO TABLE tbl_name
PARTITION (...);
とする.
テーブルを
ROW FORMAT SERDE
'org.apache.hive.hcatalog.data.JsonSerDe'
STORED AS TEXTFILE
-- or
STORED AS JSONFILE
-- or
OUTPUTFORMAT ...
で定義して
INSERT OVERWRITE LOCAL DIRECTORY local_dir_name
SELECT ...;
-- or
INSERT OVERWRITE DIRECTORY hdfs_dir_name
SELECT ...;
とする.
Hive CLIではなくBeelineの利用が推奨されている. BeelineでINSERT OVERWRITE LOCAL DIRECTORYはできないのでhdfsにダンプしてdfs -getで取得する. 参考:hadoop - Hive INSERT OVERWRITE LOCAL DIRECTORY not working - Stack Overflow
hive.server2.close.session.on.disconnect=trueのときクエリ実行中にCtrl+C
するとクエリの中止と同時にBeelineを終了する.