不允许的操作:由spark sql上的配置单元存储

ehxuflar  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(316)

我试图通过spark实现hive和dynamodb之间的连接。为此,我需要执行以下代码:

sparkSession.sql("create external table test (id string) STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' TBLPROPERTIES('dynamodb.table.name'='testdb','dynamodb.column.mapping'='id:id')")

但我有个错误:

ParseException: u"\nOperation not allowed: STORED BY(line 1, pos 111)

我在某个地方读到 STORED BY spark上不支持。有别的方法吗?总是不支持吗?谢谢您

1wnzp6jl

1wnzp6jl1#

以下是spark docs的摘录:
注意,在创建表时还不支持配置单元存储处理程序,您可以在配置单元端使用存储处理程序创建一个表,并使用sparksql读取它。
正如你所看到的,spark无法创建Hive StorageHandler 表,但可以读取已有的表。
解决方案可以是直接在配置单元中创建表定义(使用beeline、配置单元或您喜欢的任何其他jdbc客户机),并且您仍然能够在任何启用配置单元的spark中读取表(即。, spark.sql("select * from test") ).

相关问题