shu*_*aat 7 hadoop mapreduce hdfs apache-spark
我想问一下,在使用Hadoop/MapReduce和Spark时,数据分区有什么显着差异吗?它们都在HDFS(TextInputFormat)上工作,所以它在理论上应该是相同的.
是否有任何数据分区程序可能不同的情况?任何见解对我的学习都非常有帮助.
谢谢
使用Hadoop/mapreduce和Spark时,数据分区有什么重大差异吗?
Spark支持所有hadoop I/O格式,因为它使用相同的Hadoop InputFormat API以及它自己的格式化程序.因此,默认情况下,Spark输入分区的工作方式与Hadoop/MapReduce输入分割的工作方式相同.在一个分区中的数据的大小可以在运行时配置的,并且它提供了类似改造repartition,coalesce以及repartitionAndSortWithinPartition可以给你直接控制被计算分区的数量.
是否存在其数据分区过程可能不同的情况?
除了Hadoop之外,I/O API Spark还有一些其他智能I/O格式(例如:Databricks CSV和NoSQL DB连接器),它们将直接返回DataSet/DateFrame(在RDD之上的更高级别的东西),这些是特定于火花的.
从非Hadoop源读取数据时火花分区的关键点
max(sc.defaultParallelism, total_data_size / data_block_size).有时,群集中可用核心数量也会影响分区数量,例如sc.parallelize()没有分区参数.阅读更多.. link1