2016-09-15 78 views
2

我在尝试从RDD创建DataFrame时遇到了错误。
我的代码:unbound方法createDataFrame()

from pyspark import SparkConf, SparkContext 
from pyspark import sql 


conf = SparkConf() 
conf.setMaster('local') 
conf.setAppName('Test') 
sc = SparkContext(conf = conf) 
print sc.version 

rdd = sc.parallelize([(0,1), (0,1), (0,2), (1,2), (1,10), (1,20), (3,18), (3,18), (3,18)]) 

df = sql.SQLContext.createDataFrame(rdd, ["id", "score"]).collect() 

print df 

错误:

df = sql.SQLContext.createDataFrame(rdd, ["id", "score"]).collect() 
TypeError: unbound method createDataFrame() must be called with SQLContext 
      instance as first argument (got RDD instance instead) 

我完成火花外壳相同的任务,其中一个直接的最后三行代码将打印值。我主要怀疑导入语句,因为这是IDE和Shell之间的区别。

回答

4

您需要使用SQLContext的实例。所以,你可以尝试像以下:

sqlContext = sql.SQLContext(sc) 
df = sqlContext.createDataFrame(rdd, ["id", "score"]).collect() 

的更多细节pyspark documentation

相关问题