J'ai un RDD, j'ai besoin de le convertir en un ensemble de données, j'ai essayé:
Dataset<Person> personDS = sqlContext.createDataset(personRDD, Encoders.bean(Person.class));
la ligne ci-dessus renvoie l'erreur,
impossible de résoudre la méthode createDataset (org.Apache.spark.api.Java.JavaRDD Main.Person, org.Apache.spark.spark.ql.Encoder T)
cependant, je peux convertir en Dataset
après la conversion en Dataframe
. le code ci-dessous fonctionne:
Dataset<Row> personDF = sqlContext.createDataFrame(personRDD, Person.class);
Dataset<Person> personDS = personDF.as(Encoders.bean(Person.class));
.createDataset()
accepte RDD<T>
et non JavaRDD<T>
. JavaRDD
est un wrapper autour de RDD afin de faciliter les appels à partir de code Java. Il contient RDD en interne et est accessible via .rdd()
. Les éléments suivants peuvent créer une Dataset
:
Dataset<Person> personDS = sqlContext.createDataset(personRDD.rdd(), Encoders.bean(Person.class))
sur votre rdd, utilisez .toDS()
, vous obtiendrez un jeu de données.
Faites-moi savoir si cela aide. À votre santé.