假设我有一个大小为 100MB 的输入文件。它包含 CSV 格式的大量点(经纬度对)。我应该怎么做才能在 Apache Spark 中将输入文件拆分为 10 个 10MB 文件,或者如何自定义拆分。
注意:我想处理每个映射器中点的子集。
Spark 的抽象不提供明确的数据拆分。但是,您可以通过多种方式控制并行度。
假设您使用 YARN,HDFS 文件会自动拆分为 HDFS 块,并在 Spark 操作运行时同时处理它们。
除了 HDFS 并行性之外,还可以考虑将分区器与 PairRDD 一起使用。PairRDD 是键值对 RDD 的数据类型,分区器管理从键到分区的映射。默认分区程序读取spark.default.parallelism. 分区器有助于控制数据的分布及其在 PairRDD 特定操作中的位置,例如,reduceByKey。
查看以下有关 Spark 数据并行性的文档。
http://spark.apache.org/docs/1.2.0/tuning.html
| 归档时间: |
|
| 查看次数: |
11701 次 |
| 最近记录: |