pyspark erreur: AttributeError: 'SparkSession' objet n'a pas d'attribut "paralléliser'
Je suis en utilisant pyspark sur Jupyter ordinateur portable. Voici comment l'Étincelle de l'installation:
import findspark
findspark.init(spark_home='/home/edamame/spark/spark-2.0.0-bin-spark-2.0.0-bin-hadoop2.6-hive', python_path='python2.7')
import pyspark
from pyspark.sql import *
sc = pyspark.sql.SparkSession.builder.master("yarn-client").config("spark.executor.memory", "2g").config('spark.driver.memory', '1g').config('spark.driver.cores', '4').enableHiveSupport().getOrCreate()
sqlContext = SQLContext(sc)
Puis quand je fais:
spark_df = sqlContext.createDataFrame(df_in)
où df_in
est une pandas dataframe. Puis j'ai les erreurs suivantes:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-9-1db231ce21c9> in <module>()
----> 1 spark_df = sqlContext.createDataFrame(df_in)
/home/edamame/spark/spark-2.0.0-bin-spark-2.0.0-bin-hadoop2.6-hive/python/pyspark/sql/context.pyc in createDataFrame(self, data, schema, samplingRatio)
297 Py4JJavaError: ...
298 """
--> 299 return self.sparkSession.createDataFrame(data, schema, samplingRatio)
300
301 @since(1.3)
/home/edamame/spark/spark-2.0.0-bin-spark-2.0.0-bin-hadoop2.6-hive/python/pyspark/sql/session.pyc in createDataFrame(self, data, schema, samplingRatio)
520 rdd, schema = self._createFromRDD(data.map(prepare), schema, samplingRatio)
521 else:
--> 522 rdd, schema = self._createFromLocal(map(prepare, data), schema)
523 jrdd = self._jvm.SerDeUtil.toJavaArray(rdd._to_java_object_rdd())
524 jdf = self._jsparkSession.applySchemaToPythonRDD(jrdd.rdd(), schema.json())
/home/edamame/spark/spark-2.0.0-bin-spark-2.0.0-bin-hadoop2.6-hive/python/pyspark/sql/session.pyc in _createFromLocal(self, data, schema)
400 # convert python objects to sql data
401 data = [schema.toInternal(row) for row in data]
--> 402 return self._sc.parallelize(data), schema
403
404 @since(2.0)
AttributeError: 'SparkSession' object has no attribute 'parallelize'
Personne ne sait ce que j'ai fait de mal? Merci!
OriginalL'auteur Edamame | 2016-09-15
Vous devez vous connecter pour publier un commentaire.
SparkSession
n'est pas un remplacement pour unSparkContext
mais un équivalent de laSQLContext
. Juste l'utiliser de la même manière que vous l'habitude d'utiliserSQLContext
:et si jamais vous avez accès à
SparkContext
utilisationsparkContext
attribut:donc, si vous avez besoin d'
SQLContext
pour la rétro-compatibilité, vous pouvez:Seulement si
df_in
est un argument valable pourcreateDataFrame
.df_in est une pandas dataframe. J'ai pensé qu'il doit être valide?
Pas nécessairement. Voir par exemple stackoverflow.com/q/38794522/1560062
OriginalL'auteur zero323