Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
Apache spark 如何在Spark中生成大量数据?_Apache Spark - Fatal编程技术网

Apache 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的数组列表 最终列表范围=

目前,当我想在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的数组列表
最终列表范围=范围(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)