我有一个spark应用程序,它可以读取多个s3文件并进行某些转换。我就是这样读文件的:
input_df_s3_path = spark.read.csv("s3a://bucket1/s3_path.csv")
s3_path_list = input_df_s3_path.select('_c0').rdd.map(lambda row : row[0]).collect()
input_df = sqlContext.read.option("mergeSchema", "false").parquet(*s3_path_list).na.drop()
因此,从包含所有s3路径的csv创建datafrme,将这些路径转换为一个列表,并将该列表传递到read.parquet中。我有将近5万个文件要读。
在应用程序日志中,我看到了一些异常情况,在开始列出叶文件和目录时,有将近15分钟的延迟。
20/09/09 05:56:34 INFO BlockManagerInfo: Removed broadcast_0_piece0 on ip-10-33-89-205.ec2.internal:37391 in memory (size: 26.3 KB, free: 1643.2 MB)
20/09/09 06:11:06 INFO InMemoryFileIndex: Listing leaf files and directories in parallel under: s3a://bucketname/.....
有谁能帮助我理解为什么有15分钟的延迟和一些有效的方法来阅读这些文件?
暂无答案!
目前还没有任何答案,快来回答吧!