有没有办法使用 Spark SQL 查询 AWS Glue 数据目录中的分区信息类似于 Athena?

问题描述

我目前正在 PySpark 中开发一个 glue ETL 脚本,该脚本需要查询我的 glue 数据目录的分区并以编程方式将该信息与其他 glue 表连接。

目前,我可以使用 SELECT * FROM db_name.table_name$partitions JOIN table_name2 ON ... 在 Athena 上执行此操作,但看起来这不适用于 Spark sql。我能找到的最接近的东西是 SHOW PARTIIONS db_name.table_name,它似乎没有削减它。

有谁知道我可以利用 glue ETL / Boto3 (glue API) / PySpark 以类似 sql 的方式查询我的分区信息的简单方法吗?

就目前而言,唯一可能的解决方法似乎是 Boto3 中的 get_partitions() 方法,但从我的角度来看,这看起来要处理得多复杂的工作。我已经有了我的 Athena 查询获取我需要的信息,所以如果有一种理想的方法可以使用 sql 以类似的方式复制获取我的表的分区,那就太棒了。请告知,谢谢!

解决方法

对于那些感兴趣的人,我能够找到但仍需要测试的替代解决方法是带有 Boto3 客户端的 Athena API。我也可能使用与 Athena 集成的 AWS Wrangler 来检索数据帧。