我正在尝试使用pyspark代码在AWS emr上从Dynamodb创建一个外部配置单元表。当我在配置单元提示符下执行查询时,查询工作正常,但是当我将其作为pyspark作业执行时,查询失败。代码如下:
from pyspark import SparkContext
from pyspark.sql import SparkSession
import os
spark = SparkSession.builder.enableHiveSupport().getOrCreate()
spark.sql('use ash_data')
spark.sql(
"""
CREATE EXTERNAL TABLE dummyTable
(item MAP<STRING, STRING>)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "testdynamodb")
"""
)
它一直给我以下错误:
pyspark.sql.utils.ParseException: u'\nOperation not allowed: STORED BY(line 4, pos 4)\n\n== SQL ==\n\n CREATE EXTERNAL TABLE dummyTable\n (item MAP<STRING, STRING>)\n STORED BY \'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler\'\n----^^^\n TBLPROPERTIES ("dynamodb.table.name" = "testdynamodb")\n \n'
我们需要设置任何权限或角色来完成这项工作吗?有人找到任何解决此错误的方法吗?
谢谢
您必须:
运行命令以使用hive
创建表