差异:mapPartition与外部的对象实例化

时间:2018-02-25 16:20:52

标签: apache-spark rdd

我是Apache Spark的初学者。 Spark的RDD API提供转换功能,如mapmapPartitions。我可以理解地图适用于RDD中的每个元素,但mapPartitions适用于每个分区,很多人都提到mapPartition理想地用于我们想要进行对象创建/实例化的地方,并提供了如下示例:

val rddData = sc.textFile("sample.txt")
val res = rddData.mapPartitions(iterator => {
   //Do object instantiation here
   //Use that instantiated object in applying the business logic
   })

我的问题是我们不能通过在map函数之外进行对象实例化来实现map函数本身,例如:

val rddData = sc.textFile("sample.txt")
val obj = InstantiatingSomeObject

val res = rddData.map(element => 
    //Use the instantiated object 'obj' and do something with data
)

我对map和mapPartitions的基本理解可能是错的,如果问题有误,请纠正我。

0 个答案:

没有答案