对不起。SC'" 我的计算机是Win7,Spark的版本为1.6.0,API是Python3。我有几次Google并阅读Spark Python API文档,无法解决问题。我寻求您的帮助。
。我的代码是:
#python version is 3.5
sc.stop()
import pandas as pd
import numpy as np
sc=SparkContext("local","app1"
data2=[("a",5),("b",5),("a",5)]
df=sqlContext.createDataFrame(data2)
的结果是:
AttributeError Traceback (most recent call last)
<ipython-input-19-030b8faadb2c> in <module>()
5 data2=[("a",5),("b",5),("a",5)]
6 print(data2)
----> 7 df=sqlContext.createDataFrame(data2)
D:sparkspark-1.6.0-bin-hadoop2.6pythonpysparksqlcontext.py in createDataFrame(self, data, schema, samplingRatio)
426 rdd, schema = self._createFromRDD(data, schema, samplingRatio)
427 else:
--> 428 rdd, schema = self._createFromLocal(data, schema)
429 jrdd = self._jvm.SerDeUtil.toJavaArray(rdd._to_java_object_rdd())
430 jdf = self._ssql_ctx.applySchemaToPythonRDD(jrdd.rdd(), schema.json())
D:sparkspark-1.6.0-bin-hadoop2.6pythonpysparksqlcontext.py in _createFromLocal(self, data, schema)
358 # convert python objects to sql data
359 data = [schema.toInternal(row) for row in data]
--> 360 return self._sc.parallelize(data), schema
361
362 @since(1.3)
D:sparkspark-1.6.0-bin-hadoop2.6pythonpysparkcontext.py in parallelize(self, c, numSlices)
410 [[], [0], [], [2], [4]]
411 """
--> 412 numSlices = int(numSlices) if numSlices is not None else self.defaultParallelism
413 if isinstance(c, xrange):
414 size = len(c)
D:sparkspark-1.6.0-bin-hadoop2.6pythonpysparkcontext.py in defaultParallelism(self)
346 reduce tasks)
347 """
--> 348 return self._jsc.sc().defaultParallelism()
349
350 @property
AttributeError: 'NoneType' object has no attribute 'sc'
我非常模糊,以至于我创建了" sc",为什么它显示"'nontype"对象的错误没有属性'sc'?
这应该有效(在SC创建的末尾,在代码中您缺少')',这是一种类型)。您可以尝试创建SC如下:
conf = SparkConf().setAppName("app1").setMaster("local")
sc = SparkContext(conf=conf)
btw sc.stop意味着您已经具有火花上下文,如果您使用pyspark,但如果使用Spark-Submit,则不正确。最好使用SparkContext。在两种情况下都起作用的GetorCreate。
这是一个对我有用的最小示例。我不确定,如果您之后不使用它,为什么您首先会导入大熊猫。我想您的目的是从熊猫对象创建一个数据框。因此,这是一个从熊猫frame生成火花dataframe的示例。
import pandas as pd
from pyspark import SQLContext
df = pd.DataFrame({'x': [1, 2, 3]})
sc = SparkContext.getOrCreate()
sqlContext = SQLContext(sc)
sqlContext.createDataFrame(df)
我也在jupyter笔记本中运行火花。