【发布时间】:2023-01-24 11:01:17
【问题描述】:
我有一个场景,我需要从位于不同位置和不同架构的 s3 存储桶中读取许多文件(csv 或镶木地板)。
我这样做的目的是从不同的 s3 位置提取所有元数据信息并将其保存为 Dataframe 并将其另存为 s3 本身中的 csv 文件。这里的问题是我有很多 s3 位置来读取文件(分区)。我的示例 s3 位置就像
s3://myRawbucket/source1/filename1/year/month/day/16/f1.parquet
s3://myRawbucket/source2/filename2/year/month/day/16/f2.parquet
s3://myRawbucket/source3/filename3/year/month/day/16/f3.parquet
s3://myRawbucket/source100/filename100/year/month/day/16/f100.parquet
s3://myRawbucket/source150/filename150/year/month/day/16/f150.parquet and .......... so on
我需要做的就是使用 spark 代码读取这么多文件(大约 200 个)并根据需要应用一些转换并提取标头信息、计数信息、s3 位置信息、数据类型。
读取所有这些文件(不同模式)并使用火花代码(Dataframe)处理它并将其保存为 s3 存储桶中的 csv 的有效方法是什么?请耐心等待,因为我是 Spark 世界的新手。我正在使用 python (Pyspark)
【问题讨论】:
-
您可以尝试 multiprocessing / Thread 并行处理文件。
-
据我所知,spark 用于并行处理。我如何使用 spark 实现它?
标签: python apache-spark pyspark apache-spark-sql boto3