我想問的是,在使用Hadoop/MapReduce和Spark時,數據分區中有沒有任何?他們都在HDFS(TextInputFormat)上工作,所以理論上它應該是一樣的。mapreduce分割和火花分割之間的區別
是否有任何情況下數據分區的程序可以不同?任何見解都會對我的學習非常有幫助。
感謝
我想問的是,在使用Hadoop/MapReduce和Spark時,數據分區中有沒有任何?他們都在HDFS(TextInputFormat)上工作,所以理論上它應該是一樣的。mapreduce分割和火花分割之間的區別
是否有任何情況下數據分區的程序可以不同?任何見解都會對我的學習非常有幫助。
感謝
與 的Hadoop/MapReduce和星火工作時的數據分區任何顯著區別?
星火支持所有Hadoop的I/O格式,因爲它使用相同的Hadoop InputFormat的API與它自己的格式化一起。因此,Spark輸入分區的工作原理與Hadoop/MapReduce輸入默認分裂相同。分區中的數據大小可以在運行時配置,它提供像repartition
,3210和repartitionAndSortWithinPartition
這樣的轉換,可以讓您直接控制正在計算的分區數。
是否有任何其數據分區過程可能與 不同的情況?
除了Hadoop的,I/O API的火花確實有一些其他的智能I/O的格式(例如:Databricks CSV和的NoSQL數據庫連接),這將直接返回DataSet/DateFrame
(更高層的東西RDD的頂部),這是火花特定的。
上讀取來自非Hadoop的源
fs.s3n.block.size
或fs.s3.block.size
。spark.cassandra.input.split.size_in_mb
。spark.mongodb.input.partitionerOptions.partitionSizeMB
。max(sc.defaultParallelism, total_data_size/data_block_size)
。 某些時候,集羣中可用內核的數量也會像sc.parallaize()
一樣忽略分區數參數。更多... link1