2016-09-15 30 views
4

Jupyterノートブックでpysparkを使用しています。ここでどのようにスパークセットアップ:次にpysparkエラー:AttributeError: 'SparkSession'オブジェクトに 'parallelize'属性がありません

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) 

私は:df_inはパンダのデータフレームをある

spark_df = sqlContext.createDataFrame(df_in) 

。私は次のエラーを受け取りました:

--------------------------------------------------------------------------- 
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' 

誰かが私が間違っていたことを知っていますか?ありがとう!

答えて

10

SparkSessionは、SparkContextの代わりに、SQLContextと同等のものではありません。あなたはSparkContext使用にアクセスする必要がある場合

spark.createDataFrame(...) 

sparkContext属性:ちょうどあなたがSQLContextを使用するために使用されるのと同じ方法を使用し、それを使用

spark.sparkContext 

をので、あなたは、後方互換性のためにSQLContextが必要な場合は、あなたがすることができます:

SQLContext(sparkContext=spark.sparkContext, sparkSession=spark) 
+0

私は試した:sp​​ark_df = sc.createDataFrame(df_in)、しかし、spark_dfが破損しているようです。 spark_df = sc.createDataFrame(df_in)はここで変換を行う正しい方法ですか? – Edamame

+0

'df_in'が' createDataFrame'の有効な引数である場合のみです。 – zero323

+0

df_inはパンダのデータフレームです。私はそれが有効であるべきだと思った? – Edamame

関連する問題