我在 Glue / Athena 中注册了一个视图,将其命名为 my-db.vm_view。我可以通过 Athena 进行查询,一切似乎都按顺序进行。
我尝试在具有胶水上下文的胶水作业中使用此表,但我收到以下相当不透明的错误消息:
py4j.protocol.Py4JJavaError:调用 o95.getCatalogSource 时发生错误。 : java.lang.Error: my-db.vm_view 中没有分类或连接
另一方面,我尝试在带有spark.sql的Glue作业中使用此表并向我显示错误Error Category: QUERY_ERROR; AnalysisException:java.lang.IllegalArgumentException:无法从空字符串创建路径
有人遇到过此错误以及可能导致此错误的原因吗?
从 AWS 获取视图的方法
可能重复:如何使用 Boto3 get_query_results 方法从 AWS Athena 创建数据帧
AWS Glue 没有从数据目录读取视图的本机方法。我建议与最受支持的答案相同的解决方案。
import awswrangler as wr
df = wr.athena.read_sql_query(sql="SELECT * FROM <table_name_in_Athena>", database="<database_name>")
请注意,它会将视图作为 pandas 数据框加载。如果太大的话要小心。