我有一個 Spark 資料集,其中包含一列 ArrayType,它表示一個用戶通過他們共同的朋友到另一個用戶的路徑
| 小路 |
|---|
| [“艾米”,“約翰”,“沃利”] |
| [“貝絲”,“莎莉”,“蒂姆”,“雅各布”] |
我最終想要實作的是一個明確列出路徑中邊緣的表格。(即邊緣串列)
| 源代碼 | 目的地 |
|---|---|
| “艾米” | “約翰” |
| “約翰” | “艾米” |
| “約翰” | “沃利” |
| “貝絲” | “莎莉” |
| “莎莉” | “蒂姆” |
| “蒂姆” | “莎莉” |
| “蒂姆” | “雅各布” |
| “雅各布” | “蒂姆” |
我應該如何嘗試將前一張表轉換為后一張?
uj5u.com熱心網友回復:
arrays_zip您可以通過使用兩個s將每個串列轉換為邊(對)串列slice- 一個不帶最后一個元素,一個不帶第一個元素。它將創建結構陣列,然后explode生成陣列以使每個結構位于單獨的行中,然后將結構列轉換為兩個單獨的列 ( withColumn)。然后你應該添加反向節點并使用distinct.
我假設您使用 DataFrame 并使用 spark sql 函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/441156.html
