无法使用jdbc写入本地配置单元

azpvetkf  于 2021-06-26  发布在  Hive
关注(0)|答案(0)|浏览(186)

我正在运行一个小的amazonemr集群,希望通过jdbc从远程连接写入它的hive数据库。我遇到了一个错误,如果我在emr集群上本地执行所有操作,也会出现这个错误,这就是为什么我认为故障不是远程连接,而是emr上直接发生的。
运行此最小示例时出现错误:

connectionProperties = {
  "user" : "aengelhardt",
  "password" : "doot",
  "driver" : "org.apache.hive.jdbc.HiveDriver"
}
from pyspark.sql import DataFrame, Row
test_df = sqlContext.createDataFrame([
  Row(name=1)
])
test_df.write.jdbc(url= "jdbc:hive2://127.0.0.1:10000", table = "test_df", properties=connectionProperties, mode="overwrite")

然后我得到很多java错误消息,但我认为重要的一行是:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/spark/python/pyspark/sql/readwriter.py", line 940, in jdbc
    self.mode(mode)._jwrite.jdbc(url, table, jprop)
  File "/usr/lib/spark/python/lib/py4j-0.10.6-src.zip/py4j/java_gateway.py", line 1160, in __call__
  File "/usr/lib/spark/python/pyspark/sql/utils.py", line 63, in deco
    return f(*a,**kw)
  File "/usr/lib/spark/python/lib/py4j-0.10.6-src.zip/py4j/protocol.py", line 320, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o351.jdbc.
: org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: ParseException line 1:23 cannot recognize input near '"name"' 'BIGINT' ')' in column name or primary key or foreign key

最后一行提示在创建表时出现了问题,因为他试图在那里将'name'列指定为'bigint'。
我发现这个问题也有类似的问题,问题是sql查询被错误地指定了。但是在这里,我没有指定查询,所以我不知道发生在哪里或者如何修复它。
到目前为止,我还不知道如何更深入地寻找原因。有没有人有办法或想法进一步寻找原因?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题