我正在尝试将表格从Postgresql导入到HDFS上的Parquet文件中。
这是我的工作:
sqoop import \
--connect "jdbc:postgresql://pg.foo.net:5432/bar" \
--username user_me --password $PASSWORD \
--table foo.bar \
--target-dir /user/me/bar \
--as-parquetfile
我得到
INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM "foo.bar" AS t LIMIT 1
ERROR manager.SqlManager: Error executing statement: org.postgresql.util.PSQLException: ERROR: relation "foo.bar" does not exist
SELECT t.* FROM "foo.bar" AS t LIMIT 1
确实不能工作,但是SELECT t.* FROM foo.bar AS t LIMIT 1
可以。因此,问题在于表名被引用了。我试图以--table
不同的方式提供论据,但没有效果。
我该如何解决?
在链接状态的文档中,有一个--schema
参数。由于某种原因,并未在中提及sqoop help import
。
另一个奇怪的是
--table bar --schema foo
仍然不起作用,但是
--table bar -- --schema foo
做。
无论如何,现在就可以使用。感谢您链接相关的文档部分!
表名是bar
,foo
是架构的名称。根据文档,您应该这样做:
sqoop import \
(...)
--table bar \
--schema foo
(...)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句