0
要恢復我想投入所關聯的同一組值的列:創建組值
這裏是我有:
col1 col2
1 2
1 3
2 3
4 5
5 6
,我想這一點:
col1 col2 group
1 2 1
1 3 1
2 3 1
4 5 2
5 6 2
要生成這兩個組,這裏是步驟,如果我手動。
- 排1:1被關聯到2所以他們都在同一個組讓我們把它1組
- 行2:1是在第1組,現在1被關聯到3 SO 3也是對組1
- 行3:2在組1上,3也在組1上,所以他們在組1中
- 行4:4不是組1的值,所以我創建了一個新組2,我將它與5
- 第5行:5有一個組2並且與6關聯,因此它具有組2.
你有想法在SQL中解決這個問題。 知基於A.R.Ferguson回答我能找出使用pyspark和graphframe的解決方案,我使用蜂巢或pyspark
此問題與查找圖形的連通組件相同。每行代表兩個頂點之間的邊。 Hive/MapReduce不適合解決這個問題,但有一個名爲GraphX的Spark庫,幸運的是,它們實際上只是通過新的GraphFrames庫添加了一個Python API(https://databricks.com/blog/2016/03/ 03/introduction-graphframes.html),希望你能讓你的集羣管理員更新Spark。 –
謝謝我用你的答案解決了這個問題。我使用了graphframe和connectedComponents()函數。 – patpat