在下面的代码中,当通过sqoop进行配置单元导入时,用所需的文本替换空条目是我做错了什么

8gsdolmq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(242)
sqoop import \
--connect "jdbc:mysql://quickstart.cloudera:3306/retail_db" \
--username=retail_dba \
--password=cloudera \
--table departments_null \
--hive-home /user/hive/warehouse \
--hive-import \
--hive-overwrite \
--hive-table sqoop_import.departments_null \
--create-hive-table \
--outdir java_files \
--direct \
--null-string 'N/A' \
--null-non-string '-1' \
--fields-terminated-by '|' \
--lines-terminated-by '\n'  \
-m 1

主键有唯一的值,而其他列有null,但是在导入之后它只显示null,而不是我指定的n/a或-1

lrpiutwd

lrpiutwd1#

你的命令似乎很好。
你的Hivetable sqoop_import.departments_null 是预先创建的,而不是 --fields-terminated-by '|' 以及 --lines-terminated-by '\n' 选中create table script using

show create table sqoop_import.departments_null

我认为你的字段分隔符引起了这个问题。
检查与您的表对应的hdfs目录中的数据,其中应该包含“n/a”和-1。

相关问题