2016-05-04 29 views
0

假設數據框中有一列,而另一個數據幀中有相似的模式列。如何檢查檢查列中包含的值是否相同,因爲沒有共同的屬性而不加入它們。檢查火花中兩個不同數據幀中兩列的條件

DF1
serial_nm
ABC
MNC
PQR

DF2
ser_nm
HGF
MNC
UIO
PQR

,我想第三DF3作爲輸出 DF3
跨國公司
PQR

我想這

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

但它不工作

請幫助
謝謝.. !!

+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爲什麼它不工作?你遇到什麼問題? –