pyspark - create_dynamic_frame_from_catalog 返回零结果

标签 pyspark amazon-athena aws-glue

我正在尝试从 athena 表创建一个动态粘合数据框,但我总是得到一个空数据框。

  • athena 表是我的粘合数据目录的一部分

  • create_dynamic_frame_method 调用不会引发任何错误。我尝试加载一个随机表,但它确实像完整性检查一样提示。

  • 我知道 Athena 表有数据,因为使用 Athena 查询完全相同的表会返回结果

  • 表是外部json,s3上的分区表

我正在使用 pyspark,如下所示:

import sys
from pyspark.context import SparkContext
from awsglue.context import GlueContext

# Create a Glue context
glueContext = GlueContext(SparkContext.getOrCreate())

# Create a DynamicFrame using the 'raw_data' table
raw_data_df = 
glueContext.create_dynamic_frame.from_catalog(database="***", 
table_name="raw_***")

 # Print out information about this data, im getting zero here
 print "Count:  ", raw_data_df.count()

#also getting nothing here
raw_data_df.printSchema() 

有人遇到同样的问题吗?由于未引发任何错误,这可能是权限问题还是胶水错误?

最佳答案

Glue 中有几个记录不完整的功能/陷阱,有时令人沮丧。

我建议调查您的 Glue 作业的以下配置:

  1. S3 存储桶名称是否有 aws-glue-* 前缀?
  2. 将文件放在 S3 文件夹中,并确保爬虫表定义在文件夹中 而不是实际文件。

我还在 LinkedIn 上写了一篇博客关于其他 Glue 问题,如果有帮助的话。

关于pyspark - create_dynamic_frame_from_catalog 返回零结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53137425/

相关文章:

python - 为什么 AWS Glue 上的 Spark-XML 因 AbstractMethodError 而失败?

postgresql - 从 AWS Glue 连接到 Postgres Heroku 数据库,SSL 问题

apache-spark - 查找包含任何空值的列的有效方法

python - pyspark 聚合,同时找到组的第一个值

sql - AWS Athena - 分区查询不同年份的数据

amazon-athena - 在 Amazon Athena 中创建表时转换时间戳

sql - 我们可以使用 SQL 查询向 AWS Athena 中的现有表添加列吗?

python - pyspark 多列条件并返回新列

java - 提交 Spark 作业时出现 java.lang.NoSuchMethodError

apache-spark-sql - 如何列出 AWS Glue Catalog 中的所有数据库和表?