我是HDFS,Hive,Sqoop的新手,现在正在学习这些概念。我在这里有一个问题。我创建了一个Hive表,其中包含“ROW FORMAT DELIMITED FIELDS TERMINATED BY','STORED as TEXTFILE”
我已经使用我创建的Hive [我使用过--Hive-import选项]将oracle表数据导入Hive表。我希望HDFS中的表数据文件具有逗号分隔的列。但事实并非如此。 HDFS文件中的逗号不对列进行分隔。这是默认行为还是我错过了什么。
请澄清。提前谢谢!
答案 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' \