3

我正在 AWS EMR 上执行一个 pyspark 应用程序,该应用程序配置为使用 AWS Glue 数据目录作为元存储。我在 AWS Glue 中有一个指向 DynamoDB 表的表设置。现在在我的 pyspark 脚本中,我正在尝试访问 Glue 表。我能够做到show tables并且能够看到胶水表。但是当我尝试查询表格时,我遇到了异常,

pyspark.sql.utils.AnalysisException: u'java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: arn:aws:dynamodb:<region>:<acct_id>:table/DDBTABLE;'

我在 pyspark 脚本中的查询:

spark.sql("select * from ddbtable").show()

在这方面找不到任何好的参考。我看到人们谈论spark.sql.warehouse.dir. 但不确定它与粘合数据目录有何关系。任何输入?

4

1 回答 1

3

联系了 AWS 技术,显然这是 EMR(截至 5.23.0)在使用 Glue 数据目录和访问连接到 DynamoDB 的 Glue 表时出现的问题。他们仍在为此努力,同时提供了以下解决方法。

编辑 Glue 表的属性文件以包含以下内容,

更新:位置属性到某个虚拟 S3 位置,使其格式为 - s3://dummy-path

add :在参数下添加以下 DynamoDB 特定信息,

"dynamodb.table.name": "ddb-table",
"dynamodb.column.mapping": "col:col",
"storage_handler": "org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler"

如需更新胶水表,请参阅此处

于 2019-05-03T16:51:54.357 回答