2

いくつかの「カスタム基準」/あいまい一致、たとえば数値または日付の範囲/間隔、および文字列のレーベンシュタインなどのさまざまな「距離方法」を使用して、(複数のフィールドで) 2 つ(Pair)RDDの s (またはDatasets/ s)を結合することは可能ですか?DataFrame

内で「グループ化」してRDDを取得するPairRDDには、 を実装できますが、2 つの s/data セットPairFunctionを結合する場合、同様のことはできないようです。RDD私は次のようなことを考えています:

rdd1.join(rdd2, myCustomJoinFunction);

hashCode()カスタム ロジックをandに実装することを考えていましたequals()が、「類似の」データを同じバケットにまとめる方法がわかりません。私も調べてRDD.cogroup()いますが、これを使用してこれを実装する方法がわかりません。

私はちょうどelasticsearch-hadoopに出くわしました。そのライブラリを使用してこのようなことを行うことができるかどうかは誰にもわかりませんか?

Apache Spark 2.0.0 を使用しています。私は Java で実装していますが、Scala での回答も非常に役立ちます。

PS。これは私の最初の Stackoverflow の質問なので、初心者の間違いを犯した場合はご容赦ください:)。

4

1 に答える 1

0

データフレーム/データセットの場合、カスタム結合関数で結合を使用できます。最初の回答のこの質問のように、DataFrame の列を使用する UDF を作成します。

あなたもできる

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

計算に時間がかかるので注意

于 2016-09-02T19:24:21.770 に答える