Per chiarire, io non sono alla ricerca di RDD da un array/lista comeCome creare Spark RDD da un iteratore?
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7); // sample
JavaRDD<Integer> rdd = new JavaSparkContext().parallelize(list);
Come si crea un RDD scintilla da un iteratore Java senza completamente buffer nella memoria?
Iterator<Integer> iterator = Arrays.asList(1, 2, 3, 4).iterator(); //sample iterator for illustration
JavaRDD<Integer> rdd = new JavaSparkContext().what("?", iterator); //the Question
domanda supplementare:
E 'un requisito per la sorgente di essere ri-leggibile (o in grado di leggere molte volte) per offrire resilienza per RDD? In altre parole, dal momento che gli iteratori sono fondamentalmente di sola lettura, è persino possibile creare resilient dataset distribuiti (RDD) dagli iteratori?
"senza bufferarlo completamente nella memoria".? Il tuo Iterator <> non è già in memoria? –
I dati verranno comunque caricati in memoria. Ma mi sembra che tu possa usare Spark Streaming per leggere l'input, perché il tuo iteratore di sola lettura può essere considerato come un flusso di dati. – vanekjar
@ KcDoD no. Quello usato in questa domanda è per le illustrazioni. –