2016-07-23 1 views
1

Je tente de convertir un RDD à une trame de données dans scala comme suitConversion RDD à dataframe scala - NoSuchMethodError

val posts = spark.textFile("~/allPosts/part-02064.xml.gz") 

import org.apache.spark.SparkContext._ 
import org.apache.spark._ 
import org.apache.spark.rdd._ 
import org.apache.spark.SparkContext._ 

val sqlContext = new org.apache.spark.sql.SQLContext(spark) 
import sqlContext.implicits._ 

posts.map(identity).toDF() 

Quand je fais cela, je reçois l'erreur suivante.

java.lang.NoSuchMethodError: org.apache.spark.sql.SQLContext$implicits$.stringRddToDataFrameHolder(Lorg/apache/spark/rdd/RDD;)Lorg/apache/spark/sql/DataFrameHolder; 

Je ne peux pas pour la vie de moi comprendre ce que je fais mal.

+0

Manquant un pot, ou une incompatibilité de version? –

+0

J'utilise spark 1.3 sur Scala 2.10 donc je ne suis pas sûr d'une incompatibilité de version. C'est bizarre parce que je travaille là-dessus depuis un moment et c'est la première fois que ça arrive. – k3thomps

+0

Utilisez-vous un ordinateur portable? Par exemple, jupyter ou toree? – eliasah

Répondre

0

Vous devez définir un schéma pour convertir un RDD en Dataframes, soit par méthode Reflection, soit par programmation.

Un point très important à propos de Dataframes-Dataframe est un RDD avec un schéma. Dans votre cas, définissez une classe de cas et mappez les valeurs d'un fichier à cette classe. Espérons que cela aidera