1
如果我知道數據集的給定分區位於給定服務器上(例如,假設我知道某個數據庫的碎片或區域位於某個服務器上數據庫特定的元數據API)我可以利用,當我通過SparkContext.parallelize創建一個RDD?基本上我想從服務器列表創建一個RDD,併爲每個服務器創建一個RDD的共址分區的功能。Spark RDD關聯性/手動搭配數據分區
如果我知道數據集的給定分區位於給定服務器上(例如,假設我知道某個數據庫的碎片或區域位於某個服務器上數據庫特定的元數據API)我可以利用,當我通過SparkContext.parallelize創建一個RDD?基本上我想從服務器列表創建一個RDD,併爲每個服務器創建一個RDD的共址分區的功能。Spark RDD關聯性/手動搭配數據分區
這可以通過繼承RDD並覆蓋下面的方法來實現。
/**
* Optionally overridden by subclasses to specify placement preferences.
*/
protected def getPreferredLocations(split: Partition): Seq[String] = Nil
有一個從Hortonworks這裏的這樣一個例子:https://github.com/hortonworks-spark/shc/blob/master/core/src/main/scala/org/apache/spark/sql/execution/datasources/hbase/HBaseTableScan.scala
我結束了寫這個了as a blog post