J'ai essayé toutes les manières possibles en important toutes les bibliothèques possibles et en vérifiant les réponses pour toutes les questions liées à saveAstextFile ou saveAsSequenceFile n'a même pas aidé. D'où l'initiation d'un nouveau fil. Je reçois une erreur « erreur: valeur saveAsTextFile est pas membre de scala.collection.Map[String,Long] countResult.saveAsTextFile("tmp/testfile").
en essayant de sauver un RDD à HDFS je suivais les étapes ci-dessouserreur: valeur saveAsTextFile n'est pas membre de scala.collection.Map [String, Long]
1.scala> import org.apache.spark.SparkFiles
import org.apache.spark.SparkFiles
2.scala> val countrdd = sc.parallelize(Array("hadoop","spark","hadoop","spark")).map(k => (k,1))
countrdd: org.apache.spark.rdd.RDD[(String, Int)] = MapPartitionsRDD[17] at map at :28
3.scala> val countResult = countrdd.countByKey()
countResult: scala.collection.Map[String,Long] = Map(spark -> 2, hadoop -> 2)
4.scala> countResult.saveAsTextFile("tmp/testfile")
:33: error: value saveAsTextFile is not a member of scala.collection.Map[String,Long]
countResult.saveAsTextFile("tmp/testfile")
Note:.. J'utilise la version Spark 2.X sur groupe autonome.
'saveAsTextFile' peut être appliquée à un' RDD' pas une collection scala régulière. –
Merci Glennie, ce que j'ai compris, c'est que nous pouvons utiliser la fonction save uniquement sur rdd créé avec la transformation et non avec des actions. – user8051251
Eh bien, votre action ('countByKey') ne donne pas un résultat de type' RDD', mais plutôt une collection de scala normale de type 'Map [String, Long]' –