如何为每个记录生成唯一ID

我有一个包含MM +记录的庞大数据集,我正在尝试为每条记录分配唯一的ID。 我试过下面的代码但是由于行id是顺序的,所以需要很多时间。 我试过调整内存参数来优化作业,无法获得太多性能。

示例代码段:

JavaRDD rawRdd=...... rawRdd.zipWithIndex() .mapToPair(t->new Tuple2(t._2,t._1)) 

有没有更好的方法来分配唯一ID? 谢谢

方法1:如果您的要求只是分配唯一ID,您可以使用UUID作为唯一行ID:

 rawRdd.mapToPair(t->new Tuple2(t,UUID.randomUUID().toString())); 

唯一的缺点是id长度是36个字节。

方法2:创建集中系统以分配唯一ID。 我使用基于REST的API,它遵循模式生成id,每个map操作都调用REST服务来获取唯一id。

第二种方法可让您完全控制设计id的模式。