AttributeError: l'objet 'DataFrame' n'a pas d'attribut 'map'
je voulais convertir le cadre de données spark pour ajouter en utilisant le code ci-dessous:
from pyspark.mllib.clustering import KMeans
spark_df = sqlContext.createDataFrame(pandas_df)
rdd = spark_df.map(lambda data: Vectors.dense([float(c) for c in data]))
model = KMeans.train(rdd, 2, maxIterations=10, runs=30, initializationMode="random")
le message d'erreur détaillé est:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-11-a19a1763d3ac> in <module>()
1 from pyspark.mllib.clustering import KMeans
2 spark_df = sqlContext.createDataFrame(pandas_df)
----> 3 rdd = spark_df.map(lambda data: Vectors.dense([float(c) for c in data]))
4 model = KMeans.train(rdd, 2, maxIterations=10, runs=30, initializationMode="random")
/home/edamame/spark/spark-2.0.0-bin-hadoop2.6/python/pyspark/sql/dataframe.pyc in __getattr__(self, name)
842 if name not in self.columns:
843 raise AttributeError(
--> 844 "'%s' object has no attribute '%s'" % (self.__class__.__name__, name))
845 jc = self._jdf.apply(name)
846 return Column(jc)
AttributeError: 'DataFrame' object has no attribute 'map'
<!-Est-ce que quelqu'un sait ce que j'ai fait de mal ici? Merci!
20
demandé sur
zero323
2016-09-16 18:44:46
1 réponses
Vous ne pouvez pas map
une dataframe, mais vous pouvez convertir la dataframe en RDD et la mapper en faisant spark_df.rdd.map()
. Avant Spark 2.0,spark_df.map
alias spark_df.rdd.map()
. Avec Spark 2.0, vous devez explicitement appeler .rdd
en premier.
47
répondu
David
2016-09-16 16:28:47