有没有办法使用 Spark SQL 在 AWS Glue 数据目录(类似于 Athena)中查询分区信息?
Is there a way to use Spark SQL to query partition information in AWS Glue Data Catalog (similar to in 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 来检索数据帧。
我目前正在 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 来检索数据帧。