【问题标题】:Spark partition by filesSpark按文件分区
【发布时间】:2017-09-06 09:43:09
【问题描述】:

我在 S3 存储桶上有数千个压缩的 CSV 文件,每个大小约为 30MB(解压缩后大约 120-160MB),我想使用 spark 处理这些文件。

在我的 spark 工作中,我正在对每一行进行简单的筛选器选择查询。

分区时,Spark 将文件分成两个或多个部分,然后为每个分区创建任务。每项任务大约需要 1 分钟才能完成,以处理 125K 条记录。我想避免在多个任务中对单个文件进行分区。

有没有办法获取文件和分区数据,使得每个任务都在一个完整的文件上工作,即任务数 = 输入文件数。?

【问题讨论】:

    标签: apache-spark amazon-s3 data-partitioning


    【解决方案1】:

    除了使用 spark 选项外,您还可以告诉 s3a 文件系统客户端告诉它告诉 Spark S3 中文件的“块大小”为 128 MB。默认值为 32 MB,这与您的“大约 30MB”数字足够接近,Spark 可能会将文件一分为二

    spark.hadoop.fs.s3a.block.size 134217728

    虽然使用 wholeTextFiles() 操作更安全

    【讨论】:

      猜你喜欢
      • 2020-02-21
      • 2017-12-02
      • 2017-04-24
      • 1970-01-01
      • 2020-05-04
      • 2021-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多