Что мы имеем:
stream.foreachRDD(rdd->{
JavaRDD<String> javaRDD=rdd.map(elem -> elem.value());
Dataset ds = //Any transformations
sc.read().schema(csvSchema).csv(ds).write();
});
Каковы идеи
1) Плохая, потому что используется .collect()
sc.sqlContext().createDataset(javaRDD.collect(), Encoders.STRING())
2) 'StringType cannot be cast to StructType', может можно map, но StructType::fromString не компилируется
sc.sqlContext().createDataFrame(javaRDD,String.class)
3) Без схемы
Плохо из-за низкой гибкости модели, читаемости кода(30+ полей), неконтролируемый порядок полей - в алфавитном порядке (наприм. пишу в parquet для impala)
JavaRDD<String> javaRDD=rdd.map(elem -> new Model(elem.value()));
sc.sqlContext().createDataFrame(javaRDD,Model.class);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости