Apache spark 如何在Spark中生成大量数据?
目前,当我想在Spark中生成数据时,我会执行以下操作:Apache spark 如何在Spark中生成大量数据?,apache-spark,Apache Spark,目前,当我想在Spark中生成数据时,我会执行以下操作: //generates an array list of integers 0...999 final List<Integer> range = range(1000); JavaRDD<Data> rdd = sc .parallelize(range) .mapPartitionsWithIndex(generateData(), false); //生成整数0…999的数组列表 最终列表范围=
//generates an array list of integers 0...999
final List<Integer> range = range(1000);
JavaRDD<Data> rdd = sc
.parallelize(range)
.mapPartitionsWithIndex(generateData(), false);
//生成整数0…999的数组列表
最终列表范围=范围(1000);
JavaRDD=sc
.并行化(范围)
.mapPartitionsWithIndex(generateData(),false);
对于足够大的范围,我耗尽了内存(例如5亿)
如何解决这个问题?内存不足的主要原因是您正在从驱动程序机器生成随机数据,并将其与其他机器并行
final List<Integer> range = range(1000);
输出RDD现在包含100万个标准正态分布生成的双倍值,这些值分布到10个配对方对不起,如果答案过时,可能对其他人有帮助 @Hyun Joon Kim是正确的,但我只想添加不使用Mllib的更简单的选项。这是:
sc.parallelize(0 to 1000000)
它返回RDD[Int]
sc.parallelize(0 to 1000000)