sqoop导入蜂巢

时间:2016-10-22 21:15:35

标签: hive sqoop

第一个命令:

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而不是第一种情况

1 个答案:

答案 0 :(得分:0)

Hive的默认分隔符

  • 字段:CTRL+A
  • LINE:\n

案例1:HIVE进口

将表导入Hive(如果没有设置,则使用Hive的默认分隔符。)

此外,它使用hive的默认分隔符创建--hive-table (如果不存在)中提到的表格。

案例2:HDFS IMPORT

在这种情况下,来自RDBMS的数据存储为,字段分隔符和\n行分隔符(默认),这不是hive的默认分隔符。这就是您在数据中获取NULL条目的原因。

您可以通过两种方式解决它:

  • 更改您的配置单元的字段分隔符

  • 在IMPORT命令中使用--fields-terminated-by