如题 假设目前有一个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形式的都可以
请问大佬们怎么实现?

解决方案 »

  1.   

    有两种方法。
    一个是全局发号器(例如ZooKeeper有Sequence型节点,或者自己弄个发号器服务不断产生递增值作为发号),但是效率会比较低。
    二个是mapPartition,获得当前分区的分区号。然后分区号x一个系数+当前分区本地递增值。系数是分区最大的数据条数+一定冗余。
    最省事是前者,最快但容易出问题是后者。
      

  2.   

    另外最省事但容易爆内存的是repartition为1个分区。只有一个分区的话递增就是全局的。数据量大就会OOM了