【发布时间】:2018-03-12 03:00:06
【问题描述】:
我已经使用 sqoop 将表从 Postgres 导入到 hdfs。我的表有 uuid 字段作为主键,我的命令 sqoop 如下:
sqoop import --connect 'jdbc:postgresql://localhost:5432/mydb' --username postgreuser --password 123456abcA --driver org.postgresql.Driver --table users --map-column-java id=String --target-dir /hdfs/postgre/users --as-avrodatafile --compress -m 2
但我得到了错误:
Import failed: java.io.IOException: org.postgresql.util.PSQLException: ERROR: function min(uuid) does not exist
我尝试执行 sql 命令:SELECT min(id) from users 并得到同样的错误。我该如何解决?我使用 Postgres 9.4、hadoop 2.9.0 和 sqoop 1.4.7
【问题讨论】:
-
您可以将
uuid列转换为文本:例如:min(id::text) -
感谢@a_horse_with_no_name 的回答,但我怎么能在 sqoop 中投射 uuid。我尝试了 --map-column-java id=String ,但没有用。
标签: postgresql sqoop