2016-11-28 124 views
0

我是Hadoop/Hive的初學者。我做了一些研究,找出將HiveQL查詢結果導出爲CSV的方法。 我在膩子運行下面的命令行 - 但是下面將HiveQL查詢的結果導出爲CSV時出錯?

Hive -e ‘use smartsourcing_analytics_prod; select * from solution_archive_data limit 10;’ > /home/temp.csv; 

是我得到enter image description here

ParseException line 1:0 cannot recognize input near 'Hive' '-' 'e' 

我將不勝感激對此輸入錯誤。

回答

1
  • 從配置單元shell外部運行你的命令 - 只是從linux shell。
  • 以代替 '^h IVE' ^h香港專業教育學院「運行
  • 只是你的輸出重定向到CSV文件將無法正常工作。你可以這樣做:
    hive -e 'YOUR QUERY HERE' | sed 's/[\t]/,/g' > sample.csv
    像被提供在這裏:How to export a Hive table into a CSV file?
  • AkashNegi答案也會爲你工作......多一點的時間雖然
+0

所在的文件目錄 - sample.csv保存?我檢查了我的用戶帳戶文件夾,但它不在那裏。 – Karver01

+0

它將被保存在你運行命令的位置。或者你可以將它重定向到你想要的位置,例如/path/to/sample.csv。找出你在哪裏運行pwd命令。 – belostoky

1

我做這種事情的一種方法是用你想要的模式創建一個外部表。那麼就INSERT INTO表target_table ......請看下面的例子:

CREATE EXTERNAL TABLE isvaliddomainoutput (email_domain STRING, `count` BIGINT) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY "," 
STORED AS TEXTFILE 
LOCATION "/user/cloudera/am/member_email/isvaliddomain"; 

INSERT INTO TABLE isvaliddomainoutput 

SELECT * FROM member_email WHERE isvalid = 1; 

現在開始 「/用戶/ Cloudera公司/ AM/MEMBER_EMAIL/isvaliddomain」,找到你的數據。

希望這會有所幫助。