是否可以使用一些“自定义标准”/模糊匹配(例如数字或日期的范围/间隔以及字符串的各种“距离方法”(例如 Levenshtein)来连接两个(Pair)RDD
s(或Dataset
s/ s)(在多个字段上)?DataFrame
对于在 an 中“分组”RDD
以获得 a PairRDD
,可以实现 a PairFunction
,但是在 JOINing 两个RDD
s/数据集时似乎不可能进行类似的操作?我在想类似的事情:
rdd1.join(rdd2, myCustomJoinFunction);
我正在考虑在其中实现自定义逻辑hashCode()
,equals()
但我不确定如何使“相似”数据在同一个存储桶中结束。我也一直在研究,RDD.cogroup()
但还没有弄清楚如何使用它来实现这一点。
我刚遇到elasticsearc-hadoop。有谁知道该库是否可以用来做这样的事情?
我正在使用 Apache Spark 2.0.0。我正在用 Java 实现,但 Scala 中的答案也会非常有帮助。
PS。这是我的第一个 Stackoverflow 问题,如果我犯了一些新手错误,请多多包涵:)。