我是Apache Spark的初学者。 Spark的RDD API提供转换功能,如map
,mapPartitions
。我可以理解地图适用于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的基本理解可能是错的,如果问题有误,请纠正我。