2016-05-04 10 views
0

データフレームに1つの列があり、別のデータフレームに類似のスキーマ列があるとします。コラムにある値をチェックする方法は、共通属性がないので、それらを結合することなく同じかどうかをチェックする方法です。sparkの2つの異なるデータフレームの2つの列のチェック条件

DF1
serial_nm
ABC
MNC
PQR

DF2
ser_nm
HGF
MNC

PQR UIO
LOK

と私は


感謝を助けてください

が、私はこの

val DF3 = DF1.filter(DF1("serial_nm") === DF2("ser_nm")) 

しかし、働いていないのを試してみまし出力 DF3
MNC
PQRように、第3のDF3をしたいです.. !!

+0

をあなたが参加を使用したくありませんか?あなたは 'DF1.join(DF2、DF1(" serial_nm ")=== DF2(" ser_nm "))' –

答えて

1

私はあなたが参加することができると信じています。このようにそれを使用することを検討してください:

val DF3 = DF1.join(DF2, DF1("serial_nm") === DF2("ser_nm")) 

または

val DF3 = DF1.join(DF2).where(DF1("serial_nm") === DF2("ser_nm")) 

どちらのアプローチがquivalentあります。

注:あいまいな列の問題を回避するには、一つの選択肢は、参加する前にそれらの名前を変更することです:

val df2_renamed = DF2 
    .withColumnRenamed("mnc", "df2_mnc") 
    .withColumnRenamed("pqr", "df2_pqr") 
+0

することができます。それは事件かもしれない..しかし、まだ私はクラスタ上で試している出力ではない。 –

+0

@Tejaswaghなぜそれは動作していないのですか?あなたはどんな問題に遭遇していますか? –

関連する問題