HDFS文件中的分隔符与Hive表的分隔符值不匹配

时间:2017-05-25 19:42:26

标签: hadoop hive hdfs sqoop

我是HDFS,Hive,Sqoop的新手,现在正在学习这些概念。我在这里有一个问题。我创建了一个Hive表,其中包含“ROW FORMAT DELIMITED FIELDS TERMINATED BY','STORED as TEXTFILE”

我已经使用我创建的Hive [我使用过--Hive-import选项]将oracle表数据导入Hive表。我希望HDFS中的表数据文件具有逗号分隔的列。但事实并非如此。 HDFS文件中的逗号不对列进行分隔。这是默认行为还是我错过了什么。

请澄清。提前谢谢!

1 个答案:

答案 0 :(得分:0)

根据hive docs

--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替换。

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' \