取消
顯示的結果
而不是尋找
你的意思是:

如何實現在scala中不存在模式在哪裏?

tarente
新的貢獻者三世

我有一個dataframe用下麵的列:

  • Key1
  • Key2
  • Y_N_Col
  • Col1
  • Col2

關鍵的元組(Key1 Key2),我已經和Y_N_Col行= " Y "和Y_N_Col =“N”。

我需要一個新的dataframe與所有行Y_N_Col = " Y "(不管關鍵元組),加上所有Y_N_Col =“N”沒有Y_N_Col = " Y "相同的元組的關鍵。

Scala dataframe已經計算在一個筆記本上。

提前謝謝,

蒂亞戈R。

1接受解決方案

接受的解決方案

werners1
尊敬的貢獻者三世

我使用一個left-anti加入。

所以創建一個df Y,然後創建一個df的N和做一個left_anti加入(key1和key2)的df Y。

然後這兩個聯盟。

在原帖子查看解決方案

6個回答6

匿名
不適用

你好,@Tiago年金!我的名字是派珀,我是主持人磚。很高興認識你,謝謝你的問題!看看你的同行在社區中有一個回答你的問題。否則我們將很快跟進與回複。

werners1
尊敬的貢獻者三世

我使用一個left-anti加入。

所以創建一個df Y,然後創建一個df的N和做一個left_anti加入(key1和key2)的df Y。

然後這兩個聯盟。

tarente
新的貢獻者三世

你好維爾納,

謝謝你的回答。

我實現你的建議,我正在尋求的解決方案,但不確定哪一個是更好的性能。

我正在尋求的解決方案是:

/ /我的數據存儲在dfDups / /創建一個臨時視圖dfDups .createOrReplaceTempView (dup) / /創建一個新的df沒有val dfNoDups = sqlContext“副本”。從dup sql (“”“select * Y, Y。Y_N_Col= 'Y' union all select * from Dups as N where N.Y_N_Col = 'N' and not exists ( select 1 from Dups as Y where Y.Y_N_Col = 'Y' and Y.Key1 = N.Key1 and Y.Key2 = N.Key2 ) """)

謝謝,

蒂亞戈R。

werners1
尊敬的貢獻者三世

我不確定。在火花2中,不存在實際使用left_anti加入計劃。在火花3我不知道如果這已經改變了。

但是你可以顯示兩種解決方案的查詢計劃(並嚐試它們)。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map