我正在尝试手动创建分区,而不是 apache Spark 根据可用性自行创建分区。
有人可以帮我编写正确的分区代码吗?
我尝试使用:JavaRDD distdata = sc.parallelize(data, 2);
不起作用,我使用的是具有高 RAM 的 GPU,默认情况下占用 122 个分区,这是我不想要的。我正在寻找分区较少的手动内容。
File file = new File("dataset/adult.txt");
JavaSparkContext context = new JavaSparkContext("local","SparkAnonymize");
JavaRDD<String> data = context.textFile(file.getPath(),2);
JavaRDD<String> distdata = sc.parallelize(data, 2);
list = data.top((int)data.count());
最佳答案
使用repartition
如果您不想使用 Spark 的默认并行性,则可以使用分区文件的函数
像这样JavaRDD<String> data = context.textFile(file.getPath()).repartition(2);
这应该有效!!
关于java - Apache Spark 使用java(分区),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51933320/