2016-09-15 3 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는 팬더 dataframe입니다

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

SparkSessionSparkContext 대신에 SQLContext을 대체하지 않습니다. 그냥 당신이 SQLContext 사용하는 데 사용으로이 같은 방법을 사용하여 사용

spark.createDataFrame(...) 

을하고 당신이 이제까지 SparkContext 사용에 액세스 할 수 sparkContext 속성이있는 경우 : 그래서

spark.sparkContext 

을 당신은 당신이 할 수있는 이전 버전과의 호환성을 위해 SQLContext 필요한 경우 :

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

나는 다음을 시도했다 : spark_df = sc.createDataFrame (df_in),하지만 spark_df가 손상된 것 같습니다. spark_df = sc.createDataFrame (df_in)이 변환을 수행하는 올바른 방법입니까? – Edamame

+0

'df_in'이'createDataFrame'의 유효한 인수 인 경우에만. – zero323

+0

df_in은 팬더 데이터 프레임입니다. 나는 그것이 유효해야한다고 생각 했단 말인가? – Edamame

관련 문제