Glue S3 CSV 负载改进

问题描述 投票:0回答:1

我们有glue,它使用pyspark load()从s3存储桶读取csv文件。

   read_s3_files = spark.read.format("csv") \
   .option("header", True) \
   .option("ignoreLeadingWhiteSpace", True) \
   .option("ignoreTrailingWhiteSpace", True) \
   .load(s3_file_path)

目前我们面临两个问题 -

  1. 1 条记录大约需要 15-20 秒。
  2. 如果我们处理超过 20 条记录,则 csv 加载 Spark 作业将在驱动程序上运行。

我们如何改进glue csv pyspark处理?

amazon-web-services pyspark aws-glue
1个回答
0
投票

您可以通过分割输入数据来使用并行性

如果 CSV 文件很大,请确保将其拆分为多个文件。如果存在多个分区或较小的文件,AWS Glue 会并行处理文件。

read_s3_files = spark.read.format("csv") \
    .option("header", True) \
    .option("ignoreLeadingWhiteSpace", True) \
    .option("ignoreTrailingWhiteSpace", True) \
    .option("multiLine", True) \
    .load("s3://bucket/prefix/")  # Folder path, not a single file

您还可以根据您的文件和集群动态调整分区数量:

read_s3_files = read_s3_files.repartition(200)  # Adjust based on your cluster size
© www.soinside.com 2019 - 2024. All rights reserved.