2017-05-25 93 views
0

我是HDFS,Hive,Sqoop的新手,現在正在學習這些概念。我在這裏有一個問題。我創建了一個Hive表格,其中「行格式限定字段終止」,「存儲爲文本文件」HDFS文件中的分隔符與Hive表格的分隔符值不匹配

我已經使用Hive [Hive-import選項]將Hive表導入了一個Oracle表數據我創造了。我希望HDFS中的表格數據文件具有用逗號分隔的列。但事實並非如此。列不用HDFS文件中的逗號分隔。這是默認行爲還是我錯過了一些東西。

請澄清。提前致謝!

+0

您是否包含'--fields-terminated-by'?雖然我認爲默認是逗號。你的完整sqoop命令是什麼? – Andrew

+0

@Andrew在創建Hive表時,我已經包含了「由字段終止」子句「代碼」sqoop import --connect --username -P --table dummy.sample_table --columns「」 --hive-import --hive-table Sample_sqoop_tab – Dharani

回答

0

按照蜂巢文檔

--hive-import 

Imports tables into Hive using Hive's default delimiters if none are explicitly set. 

Hive's default delimiter - fields terminated by : CTRL A and lines terminated by : \n 

所以這是預期的行爲。 如果要替換自己的字符串(「,」),則可以使用 --hive-delims-replacement。

sqoop import --connect jdbc:oracle_string//localhost:3306/mydb \ 
--username user --password pwd --table oracletbl \ 
--hive-import --hive-overwrite \ 
--hive-table hivedb.hivetbl -m 1 \ 
--hive-delims-replacement "," \ 
--null-string '\\N' \ 
--null-non-string '\\N' \ 
+0

感謝您分享您的意見。我嘗試了覆蓋默認分隔符值的選項,我將其設置爲逗號。但是,在hive/warehouse/下創建的HDFS數據文件沒有發生變化 – Dharani