如題 假設目前有一個dataframe或者是轉化的rdd
a,b,c
d,e,f
g,h,i
現在我想增加一個自增列
1,a,b,c
2,d,e,f
3,g,h,i
dataframe或者rdd形式的都可以
請問大佬們怎么實作?
uj5u.com熱心網友回復:
有兩種方法。一個是全域發號器(例如ZooKeeper有Sequence型節點,或者自己弄個發號器服務不斷產生遞增值作為發號),但是效率會比較低。
二個是mapPartition,獲得當前磁區的磁區號。然后磁區號x一個系數+當前磁區本地遞增值。系數是磁區最大的資料條數+一定冗余。
最省事是前者,最快但容易出問題是后者。
uj5u.com熱心網友回復:
另外最省事但容易爆記憶體的是repartition為1個磁區。只有一個磁區的話遞增就是全域的。資料量大就會OOM了uj5u.com熱心網友回復:
我也需要解決類似的問題,請問樓主解決沒有轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/56408.html
標籤:Spark
