0

"맞춤 기준"/ 퍼지 매칭을 사용하여 여러 개의 필드에 두 개의 (Pair)RDD (또는 Dataset s/DataFrame)을 결합 할 수 있습니까? 숫자 또는 날짜에 대한 범위/간격 및 다양한 "거리 방법". Levenshtein, 현을 위해?Apache Spark : 맞춤 기준/퍼지 매칭을 사용하여 RDD (데이터 세트) 조인

PairRDD을 얻을 수있는 RDD에서 "그룹화"를

, 하나는 PairFunction을 구현할 수 있지만, 두 RDD의/데이터 세트에 가입 할 때 비슷한 할 수없는 것 같다? 내가 좋아하는 뭔가를 생각하고있다 :

rdd1.join(rdd2, myCustomJoinFunction); 

내가 hashCode()equals()에서 사용자 정의 로직을 구현하는 방법에 대한 생각을하지만 난 "비슷한"데이터가 동일 양동이에 바람을 만드는 방법을 모르겠습니다. 나는 또한 RDD.cogroup()을 조사해 왔지만 이것을 구현하기 위해 어떻게 사용할 수 있는지 알지 못했습니다.

나는 방금 elasticsearc-hadoop을 발견했습니다. 그 라이브러리가 이런 식으로 사용할 수 있는지 누가 알 수 있습니까?

Apache Spark 2.0.0을 사용하고 있습니다. 자바로 구현하고 있지만 스칼라의 답은 매우 도움이 될 것이다.

추신. 이것은 내 첫 번째 Stackoverflow 질문 그래서 만약 내가 초보자 실수했다 :).

+0

[퍼지 대한 RDD.cartesian 대안이 ApacheSpark에 참여] 계산하기 위해 많은 시간 (http://stackoverflow.com를 소비 할 것을 기억 할 수/questions/33376727/rdd-cartesian-for-fuzzy-join-in-apachespark)하지만 내 RDD/데이터 세트 모두 메모리에서'collect() '하기에는 너무 큽니다. –

답변

0

DataFrames/Dataset의 경우 사용자 지정 조인 기능을 사용하여 조인을 사용할 수 있습니다. 이 질문과 마찬가지로 DataFrame의 열을 사용하는 UDF를 만듭니다 (in first answer).

또한

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

그것이 내가 본

+0

고마워요! 내 프로토 타입의 경우, [첫 번째 답변은 [동일하지 않은 키로 맞춤 참여]] (http://stackoverflow.com/questions/30132533/custom-join-with-non-equal-keys)에서 사용하고 있습니다. –