我已从导入数据 sqoop 至 hive 成功。我在中添加了一列 Oracle 再次将特定列导入 hive 使用 sqoop-import . 但是,它将附加到第一列数据,其余列为null,并且没有新列出现在配置单元中。谁能解决这个问题。
sqoop
hive
Oracle
sqoop-import
bgtovc5b1#
不看你的眼睛 import 语句,我假设在第二次导入时,您尝试附加到现有的导入,但仅使用 --columns 以及 --append 论据。它不会以这种方式工作,因为它将附加到文件的末尾,而不是每行的末尾。您需要使用覆盖hdfs中的现有数据 --hive-overwrite ; 并更改配置单元表以添加附加列。或者干脆把Hive放在table上 --create-hive-table 在sqoop命令中。所以你 import 命令应如下所示:
import
--columns
--append
--hive-overwrite
--create-hive-table
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
将值更改为环境的实际值
1条答案
按热度按时间bgtovc5b1#
不看你的眼睛
import
语句,我假设在第二次导入时,您尝试附加到现有的导入,但仅使用--columns
以及--append
论据。它不会以这种方式工作,因为它将附加到文件的末尾,而不是每行的末尾。您需要使用覆盖hdfs中的现有数据
--hive-overwrite
; 并更改配置单元表以添加附加列。或者干脆把Hive放在table上--create-hive-table
在sqoop命令中。所以你
import
命令应如下所示:将值更改为环境的实际值