【发布时间】:2016-07-15 07:13:43
【问题描述】:
我已成功将数据从sqoop 导入到hive。我在Oracle 中添加了一个列,并使用sqoop-import 再次将特定列导入到hive。但是,它附加到第一列数据和剩余的空列,并且没有新列进入配置单元。谁能解决这个问题。
【问题讨论】:
我已成功将数据从sqoop 导入到hive。我在Oracle 中添加了一个列,并使用sqoop-import 再次将特定列导入到hive。但是,它附加到第一列数据和剩余的空列,并且没有新列进入配置单元。谁能解决这个问题。
【问题讨论】:
不查看您的 import 语句,我假设在您的第二次导入中,您尝试追加到现有导入,但仅使用 --columns 和 --append 参数导入新列。它不会以这种方式工作,因为它会在文件末尾而不是每行末尾附加到文件。
您需要使用--hive-overwrite 覆盖hdfs 中的现有数据;并更改配置单元表以添加其他列。或者只是删除 hive 表并在 sqoop 命令中使用--create-hive-table。
所以你的import 命令应该是这样的:
sqoop --import \
--connect $CONNECTION_STR \
--username $USER \
--password $PASS \
--table $ORACLE_TABLE \
--hive-import \
--hive-overwrite \
--hive-table \
--hive-home $HIVE_HOME \
--hive-table $HIVE_TABLE
将值更改为环境的实际值
【讨论】: