使用 sqoop 将数据从 oracle 导入到 hive - 不能使用 --hive-partition-key

Import data from oracle into hive using sqoop - cannot use --hive-partition-key

我有一个简单的table:

create table osoba(id number, imie varchar2(100), nazwisko varchar2(100), wiek integer);
insert into osoba values(1, 'pawel','kowalski',36);
insert into osoba values(2, 'john','smith',55);
insert into osoba values(3, 'paul','psmithski',44);
insert into osoba values(4, 'jakub','kowalski',70);
insert into osoba values(5, 'scott','tiger',70);

commit;

我想使用 sqoop 导入 Hive。我想在 Hive 中分区 table。这是我的 sqoop 命令:

-bash-4.1$ sqoop import -Dmapred.job.queue.name=pr  --connect "jdbc:oracle:thin:@localhost:1521/oracle_database" \
--username "user" --password "password" --table osoba --hive-import \
--hive-table pk.pk_osoba --delete-target-dir --hive-overwrite \
--hive-partition-key nazwisko

我得到一个错误:

FAILED: SemanticException [Error 10035]: Column repeated in partitioning columns

谁能建议应该如何使用 --hive-partition-key 参数? 没有 --hive-partition-key 参数的 Sqoop 命令工作正常并在 Hive 中创建 table pk.pk_osoba。

此致

帕维尔

在列选项中提供除分区列之外的所有要导入的列名称。我们不在 --columns 选项中指定分区列,因为它会自动添加。

示例如下: 我正在导入包含 ID、NAME、COUNTRY 列的 DEMO2 table。我没有在 --columns 选项中指定 COUNTRY 列名,因为它是我的分区列名。

 $SQOOP_HOME/bin/sqoop import --connect jdbc:oracle:thin:@192.168.41.67:1521/orcl --username orcluser1 --password impetus --hive-import --table DEMO2 --hive-table "DEMO2" --columns ID,NAME --hive-partition-key 'COUNTRY' --hive-partition-value 'INDIA' --m 1 --verbose --delete-target-dir --target-dir /tmp/13/DEMO2