Чтобы было ясно, я не ищу RDD из массива/списка, например
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7); // sample
JavaRDD<Integer> rdd = new JavaSparkContext().parallelize(list);
Как я могу создать искровое RDD из итератора java без полной буферизации в памяти?
Iterator<Integer> iterator = Arrays.asList(1, 2, 3, 4).iterator(); //sample iterator for illustration
JavaRDD<Integer> rdd = new JavaSparkContext().what("?", iterator); //the Question
Дополнительный вопрос:
Является ли требование, чтобы источник мог быть повторно читаемым (или способным читать много раз), чтобы предложить устойчивость для RDD? Другими словами, поскольку итераторы в принципе читаются один раз, возможно ли даже создать Resilient Distributed Datasets (RDD) из итераторов?