我是HDFS,Hive,Sqoop的新手,现在正在学习这些概念。我在这里有一个问题。我创建了一个Hive表格,其中“行格式限定字段终止”,“存储为文本文件”HDFS文件中的分隔符与Hive表格的分隔符值不匹配
我已经使用Hive [Hive-import选项]将Hive表导入了一个Oracle表数据我创造了。我希望HDFS中的表格数据文件具有用逗号分隔的列。但事实并非如此。列不用HDFS文件中的逗号分隔。这是默认行为还是我错过了一些东西。
请澄清。提前致谢!
我是HDFS,Hive,Sqoop的新手,现在正在学习这些概念。我在这里有一个问题。我创建了一个Hive表格,其中“行格式限定字段终止”,“存储为文本文件”HDFS文件中的分隔符与Hive表格的分隔符值不匹配
我已经使用Hive [Hive-import选项]将Hive表导入了一个Oracle表数据我创造了。我希望HDFS中的表格数据文件具有用逗号分隔的列。但事实并非如此。列不用HDFS文件中的逗号分隔。这是默认行为还是我错过了一些东西。
请澄清。提前致谢!
按照蜂巢文档
--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' \
感谢您分享您的意见。我尝试了覆盖默认分隔符值的选项,我将其设置为逗号。但是,在hive/warehouse/
您是否包含'--fields-terminated-by'?虽然我认为默认是逗号。你的完整sqoop命令是什么? – Andrew
@Andrew在创建Hive表时,我已经包含了“由字段终止”子句“代码”sqoop import --connect --username -P --table dummy.sample_table --columns“” --hive-import --hive-table Sample_sqoop_tab –
Dharani