尝试从 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% 处。
使用
--map-column-java
将 clob
数据类型映射到 Java String
。
例如,您有一个列
C1
。用途:
--map-column-java C1=String
查看文档了解更多详细信息。
使用
--map-column-java
将列类型映射到字符串。 SQL Server 2005 中的类型(如 datetime
、varchar(max)
、bit
、cblob
、blob
等)在 Hive 中不被接受为有效类型。
--map-column-java C1=String,C2=String,C3=String