'PipelinedRDD' objet n'a pas d'attribut "toDF" dans PySpark
Je suis en train de charger un SVM fichier et le convertir en un DataFrame
si je peux utiliser le ML module (Pipeline
ML) à partir de l'Étincelle.
Je viens d'installer une nouvelle Étincelle 1.5.0 sur une Ubuntu 14.04 (pas de spark-env.sh
configuré).
Mon my_script.py
est:
from pyspark.mllib.util import MLUtils
from pyspark import SparkContext
sc = SparkContext("local", "Teste Original")
data = MLUtils.loadLibSVMFile(sc, "/home/svm_capture").toDF()
et je suis en cours d'exécution à l'aide de: ./spark-submit my_script.py
Et j'obtiens l'erreur:
Traceback (most recent call last):
File "/home/fred-spark/spark-1.5.0-bin-hadoop2.6/pipeline_teste_original.py", line 34, in <module>
data = MLUtils.loadLibSVMFile(sc, "/home/fred-spark/svm_capture").toDF()
AttributeError: 'PipelinedRDD' object has no attribute 'toDF'
Ce que je ne peux pas comprendre, c'est que si je lance:
data = MLUtils.loadLibSVMFile(sc, "/home/svm_capture").toDF()
directement à l'intérieur de PySpark shell, il fonctionne.
Vous devez vous connecter pour publier un commentaire.
toDF
méthode est un singe patch exécuté à l'intérieur deSparkSession
(SQLContext
constructeur en 1.x) constructeur donc, pour être en mesure de l'utiliser, vous devez créer unSQLContext
(ouSparkSession
) première:Pour ne pas mentionner vous avez besoin d'un
SQLContext
de travailler avec DataFrames de toute façon.