rdd关联/分区与数据的手动配置

lg40wkob  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(387)

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

t9aqgxwy

t9aqgxwy1#

这可以通过子类化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
最后我把这篇文章写成了博客

相关问题