【发布时间】:2018-04-22 03:46:37
【问题描述】:
即使我授予了所有必需的 IAM 权限,我也无法访问 AWS Glue 表。我什至无法列出所有数据库。这是代码。
import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
# New recommendation from AWS Support 2018-03-22
newconf = sc._conf.set("spark.sql.catalogImplementation", "in-memory")
sc.stop()
sc = sc.getOrCreate(newconf)
# End AWS Support Workaround
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)
错误就在这里。访问其中一个 Glue 表时。
datasource_history_1 = glueContext.create_dynamic_frame.from_catalog(database = "dev", table_name = "history", transformation_ctx = "datasource_history_1")
我也尝试列出数据库,其中我只能看到默认数据库,没有其他(我在 Glue 中创建的)
我试图参考下面的链接,仍然没有帮助我。
Unable to run scripts properly in AWS Glue PySpark Dev Endpoint
【问题讨论】:
-
这是一个我无法衡量的错误,我们不应该也排除错误吗?另外,我们是否有一些标准文档说我们不应该把我们的错误(如果它们是例外)
-
请阅读说明。错误当然非常有用(但如果您使用 PySpark,请不要切断 Java 回溯,这是大多数时候有用的事情发生的地方),但图像不是(很难阅读,具体取决于设备,并且无法搜索)。请发布文本版本。
-
newconf = sc._conf.set("spark.sql.catalogImplementation", "in-memory")如果你想使用 Glue 目录(一个 Hive 元存储),那么使用内存中的目录将切断该功能。内存目录将允许您将数据帧注册为表和临时表并在它们上运行 sparksql,但这些不会在您的 Glue 目录中。 AWS Support 的确切建议是什么?
标签: pyspark spark-dataframe aws-glue