第一个命令:
sqoop import \
–connect “jdbc:mysql://quickstart.cloudera:3306/retail_db” \
–username retail_dba \
–password cloudera \
–table departments \
–hive-home /user/hive/warehouse \
–hive-import \
–hive-overwrite \
–hive-table sqoop_import.departments \
–outdir java_files
第二个命令:
sqoop import \
–connect “jdbc:mysql://quickstart.cloudera:3306/retail_db” \
–username retail_dba \
–password cloudera \
–table departments \
–target-dir=/user/hive/warehouse/department_test \
–append
在我们在Hive中创建表而没有指定字段和行分隔符并使用sqoop导入的两个命令中,为什么在第二种情况下我们得到Null而不是第一种情况
答案 0 :(得分:0)
Hive的默认分隔符
CTRL+A
\n
案例1:HIVE进口
将表导入Hive(如果没有设置,则使用Hive的默认分隔符。)
此外,它使用hive的默认分隔符创建--hive-table
(如果不存在)中提到的表格。
案例2:HDFS IMPORT
在这种情况下,来自RDBMS的数据存储为,
字段分隔符和\n
行分隔符(默认),这不是hive的默认分隔符。这就是您在数据中获取NULL条目的原因。
您可以通过两种方式解决它:
更改您的配置单元的字段分隔符
在IMPORT命令中使用--fields-terminated-by
。