Я пытаюсь настроить RDD и собрать данные в построитель строк. Но это происходит не так, как foreach работает на узлах-исполнителях, а строковый конструктор работает на узле драйвера. является ли какой-либо способ достичь моей цели? Я не хочу использовать collect действие, как оно дорого.Соберите данные с помощью Foreach
private static StringBuilder collect(JavaRDD<String> javaRDD) {
StringBuilder builder = new StringBuilder();
javaRDD.foreach(x -> builder.append(x));
System.out.println(builder.toString() + " ****");
return builder;
}
Любая помощь очень ценится.
Обзора ваших апача искры знания о возбудителе/рабочих (http://spark.apache.org/docs/latest/cluster-overview.html): ваш (строка) строитель живет в драйвере, ваша жизнь javaRDD на рабочих. Если вы хотите получить данные из javaRDD в свой строитель, вам необходимо «collect()». – WillemM
Вы хотите сказать, что тер никак не отличается от collect()? – BDR
Обновлен мой вопрос. Спасибо @WillemM – BDR