web-dev-qa-db-fra.com

convertir RDD en jeu de données dans Java Spark

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));
4
vdep

.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))

8
vdep

sur votre rdd, utilisez .toDS(), vous obtiendrez un jeu de données.

Faites-moi savoir si cela aide. À votre santé.

0
Chitral Verma