问题描述
我目前正在 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 来检索数据帧。