在 EMR 上使用 PySpark 连接来自不同 Glue 目录的表

Join tables from different Glue catalogs with PySpark on EMR

要从 EMR 上的 PySpark 查询 Glue 目录,我在集群配置中设置了参数 hive.metastore.glue.catalogid

是否可以从不同的 Glue 目录(在不同的 AWS 账户上)连接表?

我尝试使用 Athena 从一个 AWS 租户到另一个租户创建一个视图,但显然 PySpark 无法查询 SQL 个视图。

这可以在 Pyspark 中通过设置目录分隔符配置来实现。

pyspark --conf spark.hadoop.aws.glue.catalog.separator="/"

然后可以直接从 Pyspark sql 查询中选择所需的目录。请注意,目录 ID(帐户 ID)由分隔符 /:

分隔
spark.sql(select * from `111122223333/demodb.tab1` t1 inner join  `444455556666/demodb.tab2` t2 on t1.col1 = t2.col2).show()

Source AWS Doc