将JavaRDD <string>火花到csv数据集

时间:2018-10-24 08:26:47

标签: java apache-spark apache-spark-sql spark-streaming

我们拥有的

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无法转换为StructType”

sc.sqlContext().createDataFrame(javaRDD,String.class)

3)没有架构:
不好,因为灵活性低,代码可读性(30个以上字段,庞大的构造函数),列的顺序不变-按字母顺序排列的字段(写到用于impala的拼花)

   JavaRDD<String> javaRDD=rdd.map(elem -> new Model(elem.value()));
   sc.sqlContext().createDataFrame(javaRDD,Model.class);

0 个答案:

没有答案