Apache spark Spark RDD关联/分区与数据的手动配置

Apache spark Spark RDD关联/分区与数据的手动配置,apache-spark,Apache Spark,如果我知道数据集的给定分区位于给定的服务器上(例如,假设我通过某种特定于数据库的元数据API知道数据库的碎片或区域位于该服务器上),那么当我通过SparkContext.parallelize创建RDD时,我可以利用这一点吗?基本上,我想从服务器列表中创建一个RDD,并为每个服务器创建一个函数来创建RDD的一个位于同一位置的分区 这可以通过将RDD子类化并重写下面的方法来实现 /** * Optionally overridden by subclasses to specify placem

如果我知道数据集的给定分区位于给定的服务器上(例如,假设我通过某种特定于数据库的元数据API知道数据库的碎片或区域位于该服务器上),那么当我通过SparkContext.parallelize创建RDD时,我可以利用这一点吗?基本上,我想从服务器列表中创建一个RDD,并为每个服务器创建一个函数来创建RDD的一个位于同一位置的分区

这可以通过将RDD子类化并重写下面的方法来实现

/**
 * Optionally overridden by subclasses to specify placement preferences.
 */
protected def getPreferredLocations(split: Partition): Seq[String] = Nil
这里有一个来自Hortonworks的例子:

最后我写了这个