如何确保Spark数据源v2中的数据局部性?

时间:2019-03-06 08:25:07

标签: apache-spark apache-spark-sql datasource

我实现了Spark数据源(v2),但没有找到确保数据局部性的方法。

在数据源v1 getPreferredLocations中可以实现的方法中,数据源v2等效于什么?

1 个答案:

答案 0 :(得分:0)

在Spark数据源v2中,您应该更改为SupportsReportPartitioning

我看到有人在此问题SPARK-15689 - Data source API v2

中讨论了一些限制
  

因此, SupportsReportPartitioning 的功能还不足以支持自定义哈希函数。可能会引入洗牌的有两个主要的运营商:加入和聚合。 Aggregate只需要对数据进行集群,而不必关心如何进行集群化,因此,如果您的实现捕获了ClusteredDistribution,则数据源v2可以支持它。 Join需要通过spark shuffle hash函数聚集的2个子节点的数据,当前数据源v2不支持。