Sqoop 导入失败:尝试导入 Oracle 表时无法转换 SQL 类型 2005

问题描述 投票:0回答:2

尝试从 Oracle 数据库导入表作为 parquet 文件时出现以下错误。

 ERROR tool.ImportTool: Imported Failed: Cannot convert SQL type 2005

这个问题已经被提出了here,但建议的解决方案对我没有帮助。

我正在尝试使用以下命令从命令行导入表,并在 <> 中填充相应的值:

sqoop import --connect jdbc:oracle:thin:@<host>:<port>/<service> --username <user>  --password <password> --hive-import --query 'SELECT * FROM <DB>.<table> WHERE $CONDITIONS' --split-by <ID> --hive-database <HIVE_DB> --hive-table <HIVE_TABLE> --incremental append --check-column <ID> --map-column-hive <ID>=integer --compression-codec=snappy --target-dir=/user/hive/<FOLDER> --as-parquetfile --last-value 0 -m 1

有谁知道如何解决这个问题吗?我不是 sqooped Oracle 数据库的专家,但这似乎是由于 CLOB 数据类型的存在。 我正在 CDH 5.8 上使用 sqoop 1.4.6 运行此命令

在没有

--as-parquetfile
的情况下运行作业会导致 sqoop 作业似乎卡在地图 0% 减少 0% 处。

oracle hadoop sqoop
2个回答
4
投票

使用

--map-column-java
clob
数据类型映射到 Java
String

例如,您有一个列

C1
。用途:

--map-column-java C1=String

查看文档了解更多详细信息。


0
投票

使用

--map-column-java
将列类型映射到字符串。 SQL Server 2005 中的类型(如
datetime
varchar(max)
bit
cblob
blob
等)在 Hive 中不被接受为有效类型。

--map-column-java C1=String,C2=String,C3=String
© www.soinside.com 2019 - 2024. All rights reserved.