在shell上运行此命令时,效果良好:
sqoop import --incremental append --check-column id_civilstatus --last-value -1
--connect jdbc:postgresql://somehost/somedb --username someuser
--password-file file:///passfile.txt --table sometable --direct -m 3
--target-dir /jobs/somedir -- --schema someschema
但当我试图把它保存为一份工作时:
sqoop job --create myjob -- import --incremental append --check-column id_civilstatus
--last-value -1 --connect jdbc:postgresql://somehost/somedb --username someuser
--password-file file:///passfile.txt --table sometable --direct -m 3
--target-dir /jobs/somedir -- --schema someschema
然后我执行:
sqoop job --exec myjob
我收到以下错误消息:
PSQLException: ERROR: relation "sometable" does not exist
这是由于默认架构中不存在“sometable”而导致的错误。
为什么sqoop作业soe不接受schema参数?我错过了什么?
谢谢
4条答案
按热度按时间lh80um4z1#
使用以下内容作为jdbc url
并移除
--schema someschema
来自sqoop语句。prdp8dxp2#
您可以在jdbc连接中更详细地指定/更改传递“?currentschema=myschema”的默认模式。
cgh8pdjw3#
您不需要单独提及模式,您可以将其保存在jdbc url中,不确定postgres jdbc url是否有该选项。必须将其添加到表选项本身中。像下面这样
smdncfj34#
我在这里找到了一个办法。