小编Sch*_*han的帖子

为什么在 pyspark 中列出叶文件和目录需要花费太多时间

我有 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()
Run Code Online (Sandbox Code Playgroud)

因此,从包含所有 s3 路径的 csv 创建数据帧,将这些路径转换为列表并将该列表传递到 read.parquet 中。我有将近 50k 个文件要读取。

在应用程序日志中,我看到一些异常情况,启动 Listing Leaf 文件和目录有将近 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/.....
Run Code Online (Sandbox Code Playgroud)

谁能帮助我理解为什么会有 15 分钟的延迟和一些有效的方式来读取这些文件?

python amazon-web-services apache-spark pyspark

5
推荐指数
0
解决办法
496
查看次数

如何使用 aws cdk 列出所有部署的 aws 资源

我有一个 AWS Cdk 部署程序应用程序,它在 AWS 中部署了多个资源。该应用程序使用一个配置文件作为输入文件,并使用该文件在 Fargate 集群中部署多个 ecs 任务,并将它们放置在应用程序负载均衡器后面。

有什么方法可以获取我运行时正在部署的所有组件/AWS 服务cdk deploy --all。我试图在不使用单独的 boto3 函数的情况下了解 cdk 是否提供了任何方法。

python amazon-web-services boto3 aws-cdk

2
推荐指数
1
解决办法
3389
查看次数