繁体   English   中英

Apache Spark:使用自定义条件/模糊匹配来加入RDD(数据集)

[英]Apache Spark: JOINing RDDs (data sets) using custom criteria/fuzzy matching

是否可以使用一些“自定义条件” /模糊匹配(例如,数字或日期的范围/间隔以及各种“距离方法”),将两个(Pair)RDD (或Dataset / DataFrame )(在多个字段上)连接DataFrame Levenshtein,用于琴弦吗?

为了在RDD进行“分组”以获取PairRDD ,可以实现PairFunction ,但是在联接两个RDD或数据集时似乎无法实现类似的功能吗? 我在想类似的东西:

rdd1.join(rdd2, myCustomJoinFunction);

我当时正在考虑在hashCode()equals()实现自定义逻辑,但是我不确定如何在同一个存储桶中存储“相似”数据。 我也一直在研究RDD.cogroup()但没有弄清楚如何使用它来实现这一点。

我刚遇到了Elasticsearc-hadoop 有谁知道该库是否可以用来做这样的事情?

我正在使用Apache Spark 2.0.0。 我正在用Java实现,但在Scala中回答也将非常有帮助。

PS。 这是我的第一个Stackoverflow问题,所以如果我犯了一些新手错误,请多多包涵:)。

对于DataFrames / Dataset,您可以将join与自定义联接功能一起使用。 创建一个将使用DataFrame中的列的UDF,就像该问题在第一个答案中一样

你也可以

rdd1.cartesian(rdd2).filter (...)

请记住,它将花费大量时间进行计算

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM