2017-11-29 5 views
0

ハイブクエリ結果をCSV形式のローカルファイルパスにダウンロードする必要があります。さらに、列の値は引用符で囲み、フィールドはカンマで区切り、ファイルには最初の行に列ヘッダーを入れる必要があります。ビーラインコマンドを使用してcsv形式にハイブクエリをダウンロード

これを達成するための最良の方法を教えてもらえますか?注 - クエリは通常、5M以上の行を返します。

答えて

0

最良の方法は、以下のように選択したデータでハイブテーブルを作成することです。

CREATE EXTERNAL TABLE ramesh_csv (col1 INT, col2 STRING) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
WITH SERDEPROPERTIES (
"separatorChar" = ",", 
"quoteChar" = "\"" 
) 
STORED AS TEXTFILE 
LOCATION 'mylocation'; 

INSERT OVERWRITE TABLE ramesh_csv VALUES (1, 'TEST'), (2, 'TEST AGAIN'); 

あなたの場合、選択したレコードをテーブルに挿入します。

ここでHDFSファイルを作成します。カンマで区切り、二重引用符で囲みます。

"1","TEST" 
"2","TEST AGAIN" 

以下の私の出力を参照してください。そして、あなたは、単一のローカルファイル

にHDFSパーツファイルをダウンロードするために hdfs -getmerge hdfs://mylocation data.csvを使用することができます
関連する問題