【问题标题】:sqoop command for map-hive-columns for import-all-tables用于导入所有表的 map-hive-columns 的 sqoop 命令
【发布时间】:2017-02-07 14:17:52
【问题描述】:

我正在使用 sqoop 命令从模式中导入所有表。map-column-hive 在表级别工作正常。但是当我运行架构级别时,它会出错。

sqoop import-all-tables --verbose --connect "jdbcconnectionstring" --username user --password password  --hive-import --hive-database hiveschematest --map-column-hive "emptest.id=int,emptest.name=varchar(100),emptest.address=varchar(100)"  -m 1

我需要用 hive 数据类型映射一些表数据类型。它给出错误“导入时未找到列名”。map-hive-column 是否也支持 import-all-tables(Schema) 选项?

【问题讨论】:

  • 为什么不只导入 1 个表(您为 1 个表提供 --map-column-hive)?
  • 实际上我的要求是导入所有表和一些具有 Binary_double 数据类型的表,这在 hive 中不受支持。对于这种情况,我需要 map-hive-column 用于 import-all-table 选项

标签: hive sqoop


【解决方案1】:

试试这个,你给 map-column-hive 加了双引号

sqoop import-all-tables --verbose --connect "jdbcconnectionstring" --username user --password password  --hive-import --hive-database hiveschematest --map-column-hive emptest.id=int,emptest.name=varchar(100),emptest.address=varchar(100)  -m 1

【讨论】:

  • 仍然出现同样的错误“找不到名为 emptest.id 的列”。
  • 您使用的是哪个版本的 sqoop ? 1.4.4 ?还是更老?
  • Sqoop 1.4.6-cdh5.7.1 版本
  • 他们没有正确记录这一点,根据它支持 map-column-hive for all-table-import 的文档,但他们还没有谈到如何提及数据库名称,做一件事,我希望 emptest 是你的数据库,删除它并只提及 id 并尝试一次。
  • 我试过了..但它给出了同样的错误。此外应该有一个占位符来提供表名,因为两个表可以有相同的列名。
猜你喜欢
  • 2017-03-21
  • 2017-12-16
  • 2016-08-07
  • 2017-02-03
  • 1970-01-01
  • 2016-04-26
  • 1970-01-01
  • 2016-08-04
  • 1970-01-01
相关资源
最近更新 更多