gpt4 book ai didi

hadoop - mapreduce split和spark partition的区别

转载 作者:可可西里 更新时间:2023-11-01 14:16:37 36 4
gpt4 key购买 nike

我想问一下,在使用 Hadoop/MapReduce 和 Spark 时,数据分区是否有任何显着差异?它们都在 HDFS(TextInputFormat) 上工作,因此理论上应该是相同的。

是否存在数据分区程序可能不同的情况?任何见解都会对我的研究非常有帮助。

谢谢

最佳答案

Is any significant difference in data partitioning when working with Hadoop/mapreduce and Spark?

Spark 支持所有 hadoop I/O 格式,因为它使用相同的 Hadoop InputFormat API 以及它自己的格式化程序。因此,默认情况下,Spark 输入分区的工作方式与 Hadoop/MapReduce 输入拆分相同。分区中的数据大小可以在运行时配置,它提供像 repartitioncoalescerepartitionAndSortWithinPartition 这样的转换,可以让您直接控制正在计算的分区数。

Are there any cases where their procedure of data partitioning can differ?

除了 Hadoop,I/O APIs Spark 确实有一些其他的智能 I/O 格式(例如:Databricks CSVNoSQL DB Connectors),它们会直接返回 DataSet/DateFrame(在 RDD 之上的更高级的东西)是特定于 spark 的。

从非Hadoop源读取数据时spark分区的要点

  • 分区的最大大小最终由连接器决定,
    • 对于 S3,该属性类似于 fs.s3n.block.sizefs.s3.block.size
    • Cassandra propertyspark.cassandra.input.split.size_in_mb
    • Mongo prop is , spark.mongodb.input.partitionerOptions.partitionSizeMB
  • 默认分区数是 max(sc.defaultParallelism, total_data_size/data_block_size)。有时集群中可用内核的数量也会影响分区的数量,例如没有分区参数的 sc.parallelize()

阅读更多.. link1

关于hadoop - mapreduce split和spark partition的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39651842/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com