2017-05-25 59 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