在Java Spark中将RDD转换为Dataset

vde*_*dep 5 java apache-spark

我有一个RDD,我需要将其转换为数据集,我试过:

Dataset<Person> personDS =  sqlContext.createDataset(personRDD, Encoders.bean(Person.class));
Run Code Online (Sandbox Code Playgroud)

以上行抛出错误,

无法解析方法createDataset(org.apache.spark.api.java.JavaRDD Main.Person,org.apache.spark.sql.Encoder T)

但是,我可以转换为Dataset转换为Dataframe.以下代码有效:

Dataset<Row> personDF = sqlContext.createDataFrame(personRDD, Person.class);
Dataset<Person> personDS = personDF.as(Encoders.bean(Person.class));
Run Code Online (Sandbox Code Playgroud)

vde*_*dep 14

.createDataset()RDD<T>不接受JavaRDD<T>.JavaRDD是RDD的包装器,以便更容易地从java代码调用.它内部包含RDD,可以使用.rdd().以下可以创建Dataset:

.createDataset()