2015-01-08 29 views
1

我想將配置單元查詢輸出以CSV格式(以逗號分隔)寫入HDFS文件。Hive將HDFS作爲CSV文件提交給HDFS

對於本地目錄:

INSERT OVERWRITE LOCAL DIRECTORY '/home/test/result/' 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' SELECT * from table; 

上述工程罰款和查詢的輸出寫入在本地目錄CSV格式。

對於HDFS:

INSERT OVERWRITE DIRECTORY '/home/test/result/' SELECT * from table; 

輸出寫入到HDFS被序列與由^ A和由換行分隔的行分隔的列文本。

注意

ROW FORMAT DELIMITED FIELDS ---- Not supported for above query 

有沒有辦法寫在HDFS目錄CSV文件蜂房查詢輸出(逗號分隔)

+0

訪問:http://stackoverflow.com/questions/18129581/how-do-i-output-the-results-of-a-hiveql-query-to-csv –

+0

@GauravDave我想寫在HDFS文件中。不在本地目錄中。已經查看以上的問題 –

回答

0

只有一種方式.. 1.創建一個如預期的結果 例如:創建外部表結果(col1類型,col2類型,......)以''結尾的行格式定界字段作爲文本文件位置'/ tmp/result'存儲; 2.將數據導入此表 例如:從表名中插入覆蓋表結果select *; 3.drop外部表格 例如:drop table result;

關於刪除外部表只有架構將被刪除數據將保留在指定目錄中的文本文件中,它將以逗號分隔格式。從表

INSERT OVERWRITE DIRECTORY '/家庭/測試/結果/' SELECT CONCAT(COL1, '',COL2, '',...科隆):

0

試試這個

0

要將數據以自定義格式寫入hdfs,請使用printf

insert overwrite directory "youroutputdir" select printf("%s,%s,%d", col1, col2, col3) from mytable;