使用Sqoop将列子集从RDBMS导入到Hive表

时间:2018-09-24 18:54:31

标签: hadoop hive sqoop

假设我们有一个名为lastdb且表person的mysql数据库。该表包含4列,分别为:idfirstnamelastnameage

person表中的行:

1, Firstname, Lastname, 20

我想将数据从此mysql person表导入具有相同结构的配置单元表,但仅从表person的第一列和最后一列导入。因此,在导入后,hive表中的行应如下所示:

1, NULL, NULL, 20

我尝试了以下sqoop命令:

sqoop import --connect jdbc:mysql://localhost:3306/lastdb --table person --username root --password pass --hive-import --hive-database lastdb --hive-table person --columns id,age

但是它以以下格式将行导入到配置单元表中: 1, 20, NULL, NULL

谁能告诉我该如何解决?

1 个答案:

答案 0 :(得分:-1)

鉴于MySQL表中的行是id, firstname, lastname, age个值:1, NULL, NULL, 20,,那么,运行下面的sqoop import脚本将在配置单元person中给出所需的结果。

~]$ sqoop import \
--connect \
jdbc:mysql://localhost:3306/lastdb \
--username=root \
--password=pass \
--query 'select * from person WHERE $CONDITIONS' \
--hive-import \
--hive-table person \
--hive-database lastdb \
--target-dir  /user/hive/warehouse/person -m 1