Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为每个记录生成唯一的id_Java_Apache Spark - Fatal编程技术网

Java 如何为每个记录生成唯一的id

Java 如何为每个记录生成唯一的id,java,apache-spark,Java,Apache Spark,我有一个包含MM+记录的庞大数据集,我正在尝试为每个记录分配唯一的id。我尝试了下面的代码,但它需要很多时间,因为行id是连续的。我试图调整内存参数来优化作业,但并没有获得太多性能 示例代码片段: JavaRDD<String> rawRdd=...... rawRdd.zipWithIndex() .mapToPair(t->new Tuple2<Long,String>(t._2,t._1)) javarddrawrdd=。。。。。。 rawRdd.zipWi

我有一个包含MM+记录的庞大数据集,我正在尝试为每个记录分配唯一的id。我尝试了下面的代码,但它需要很多时间,因为行id是连续的。我试图调整内存参数来优化作业,但并没有获得太多性能

示例代码片段:

JavaRDD<String> rawRdd=......
rawRdd.zipWithIndex()
.mapToPair(t->new Tuple2<Long,String>(t._2,t._1))
javarddrawrdd=。。。。。。
rawRdd.zipWithIndex()
.mapToPair(t->new Tuple2(t.\u 2,t.\u 1))

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

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

rawRdd.mapToPair(t->new Tuple2<String,String>(t,UUID.randomUUID().toString()));
rawRdd.mapToPair(t->newtuple2(t,UUID.randomuid().toString());
唯一的缺点是id长度为36字节

方法2:创建一个集中式系统来分配唯一的id。我使用基于REST的API,它遵循一种模式来生成id,并且每个映射操作调用REST服务来获得唯一的id


第二种方法为您提供了设计id模式的完全控制权。

谢谢,您可以添加有关方法2的更多详细信息吗?请遵循[rest示例]()使用rest创建集中式id,并从spark调用它以将id分配给每个记录。