так что если я правильно понимаю, вы хотите конвертировать JavaRDD
в Dataset<Row>
? Если да, вы можете создать JavaRDD<Row>
, разделив ваш JavaRDD<String>
и передать его в spark.createDataFrame
со своей схемой
StructType schema = new StructType(new StructField[]{
new StructField("_1", DataTypes.StringType, false, Metadata.empty()),
new StructField("_2", DataTypes.StringType, false, Metadata.empty()),
new StructField("_3", DataTypes.StringType, false, Metadata.empty())
});
JavaRDD<String> rdd1 = spark
.range(5)
.javaRDD()
.map(s -> s+",b,c");
JavaRDD<Row> rdd2 = rdd1.map(s -> s.split(","))
.map(s -> RowFactory.create((Object[]) s));
Dataset<Row> df = spark.createDataFrame(rdd2, schema);
df.show();
output:
+---+---+---+
| _1| _2| _3|
+---+---+---+
| 0| b| c|
| 1| b| c|
| 2| b| c|
| 3| b| c|
| 4| b| c|
+---+---+---+