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

Pyspark dataframe列比較

UmaMahesh1
尊敬的貢獻者三世

我有一個這是一個連接字符串列的元素用連字符如下。讓3個值,下麵列的樣子,

行1 - A-B-C-D-E-F

行2 - A-B-G-C-D-E-F

行3 - A-B-G-D-E-F

我想比較連續2行和創建一個列有什麼變化。具體來說,4比較

  1. 如果第一個元素改變
  2. 最後一個元素改變了
  3. 添加時除了第一個和最後一個元素
  4. 刪除時除了第一個和最後一個元素

所以我的輸出將是這個樣子

第一行;零

Row2:克補充道

Row3: C語言了

意見/建議嗎?

1接受解決方案

接受的解決方案

NhatHoang
重視貢獻二世

你好,

我認為你可以遵循以下步驟:

1。使用窗口函數將創建一個新的列,那麼你的df是這樣的

id值滯後

1 A-B-C-D-E-F零

2 A-B-G-C-D-E-F A-B-C-D-E-F

3 A-B-G-D-E-F A-B-G-C-D-E-F

2。使用分割()來將字符串轉換為數組。

id值滯後

1 (A, B, C, D, E, F] null

2 (A, B, ' G ', ' C ', ' D ', ' E ', ' F '] [A, B, C, D, E, F]

3 [A, B ' G ', ' D ', ' E ', ' F '] [' A ', ' B ', ' G ', ' C ', ' D ', ' E ', ' F ']

3所示。創建一個列使用array_except(“價值”、“滯後”)找到元素列“價值”而不是列“滯後”

4所示。創建一個列使用array_except(“滯後”,“價值”)找到元素列“滯後”而不是列“價值”

5。然後,你concat上麵這兩個列,您將有比較。

希望它的工作原理。

在原帖子查看解決方案

2回答2

NhatHoang
重視貢獻二世

你好,

我認為你可以遵循以下步驟:

1。使用窗口函數將創建一個新的列,那麼你的df是這樣的

id值滯後

1 A-B-C-D-E-F零

2 A-B-G-C-D-E-F A-B-C-D-E-F

3 A-B-G-D-E-F A-B-G-C-D-E-F

2。使用分割()來將字符串轉換為數組。

id值滯後

1 (A, B, C, D, E, F] null

2 (A, B, ' G ', ' C ', ' D ', ' E ', ' F '] [A, B, C, D, E, F]

3 [A, B ' G ', ' D ', ' E ', ' F '] [' A ', ' B ', ' G ', ' C ', ' D ', ' E ', ' F ']

3所示。創建一個列使用array_except(“價值”、“滯後”)找到元素列“價值”而不是列“滯後”

4所示。創建一個列使用array_except(“滯後”,“價值”)找到元素列“滯後”而不是列“價值”

5。然後,你concat上麵這兩個列,您將有比較。

希望它的工作原理。

UmaMahesh1
尊敬的貢獻者三世

嗨@Nhat黃平君

謝謝你的回答。

歡呼聲……

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

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

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

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

Baidu
map