未绑定方法 createDataFrame()
Posted
技术标签:
【中文标题】未绑定方法 createDataFrame()【英文标题】:unbound method createDataFrame() 【发布时间】:2016-09-15 08:03:02 【问题描述】:我在尝试从 RDD 创建 DataFrame 时遇到错误。我的代码:
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)
我在 spark shell 中完成了相同的任务,其中直接的最后三行代码将打印值。我主要怀疑 import 语句,因为这就是 IDE 和 Shell 之间的区别。
【问题讨论】:
【参考方案1】:您需要使用 SQLContext 的实例。因此,您可以尝试以下方法:
sqlContext = sql.SQLContext(sc)
df = sqlContext.createDataFrame(rdd, ["id", "score"]).collect()
更多详情请见pyspark documentation。
【讨论】:
以上是关于未绑定方法 createDataFrame()的主要内容,如果未能解决你的问题,请参考以下文章
使用 sparkSession.createDataFrame 以 parquet 格式一次将多行写入 s3