Pyspark 从返回零结果的目录创建动态框架
我试图从athena表创建一个动态粘合数据帧,但我一直得到一个空的数据帧Pyspark 从返回零结果的目录创建动态框架,pyspark,amazon-athena,aws-glue,Pyspark,Amazon Athena,Aws Glue,我试图从athena表创建一个动态粘合数据帧,但我一直得到一个空的数据帧 雅典娜表是我的glue数据目录的一部分 create\u dynamic\u frame\u方法调用不会引发任何错误。我试着加载一个随机表,但它只是作为一个理智的检查 我知道Athena表有数据,因为使用Athena查询完全相同的表会返回结果 该表是s3上的一个外部json分区表 我正在使用pyspark,如下所示: import sys from pyspark.context import SparkContext
- 雅典娜表是我的glue数据目录的一部分
调用不会引发任何错误。我试着加载一个随机表,但它只是作为一个理智的检查create\u dynamic\u frame\u方法
- 我知道Athena表有数据,因为使用Athena查询完全相同的表会返回结果
- 该表是s3上的一个外部json分区表
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()
有人面临同样的问题吗?由于没有出现错误,这可能是权限问题还是胶水错误?胶水中有几个记录不清的特性/缺陷,有时令人沮丧 我建议您调查胶水作业的以下配置:
我还写了一篇关于其他胶水陷阱的博客,如果有帮助的话 雅典娜表指向的路径下是否有子文件夹<代码>glueContext。创建动态框架。从目录不递归读取数据。要么将数据放在表指向的根目录中,要么将
附加的\u选项={“recurse”:True}
添加到from\u catalog
调用中
信用证:谢谢@Tanveer的回答。不幸的是,这两个建议对我都适用。我的表不是使用胶水爬虫创建的,而是使用直接向上的DDL。我通过手动添加分区来维护分区,因为抓取数据需要1-2个小时,而如果我想按需抓取,则需要接近实时的时间。谢谢分享你的博客!如果你有进一步的建议,请告诉我。嗨,法迪,上面的两个建议怎么样?你试过/检查过吗?我建议您创建一个bucket,例如aws glue test,创建一个文件夹,将一个小文件移到那里,在文件夹顶部创建DDL,然后运行glue job,看看是否有效。