Pyspark AttributeError: 'DataFrame'对象没有'toDF'属性。

3
以下代码以前可以运行,但现在不行了。我遇到了如下错误:

AttributeError: 'DataFrame' object has no attribute 'toDF'

if __name__ == "__main__":
  sc = SparkContext(appName="test")
  sqlContext = SQLContext(sc)

  df = sqlContext.read.format('com.databricks.spark.csv').\
    options(header='false',delimiter=',',inferSchema='true').load('test')

  ### rename columns
  df = df.toDF('a','b','c')
  ...
  sc.stop()

你想要实现什么目标? - David
将列名称分配给数据框。 - user3610141
可能是如何在Pyspark中更改数据框列名?的重复问题。 - David
我知道那篇文章。我只是在想,“toDF”更方便,而且以前它对我有用过。https://spark.apache.org/docs/1.6.1/api/python/pyspark.sql.html - user3610141
我想通了。看起来与我们的Spark版本有关。它在1.6中可以工作。 - user3610141
2个回答

1
我已经想通了。看起来与我们的Spark版本有关。它适用于1.6版本。

0
如果您正在使用Spark 1.6版本,则可以使用以下代码将RDD转换为DF。
from pyspark.sql import SQLContext, Row
sqlContext = SQLContext(sc)
df = sqlContext.createDataFrame(rdd)

如果你想给行指定标题,那么使用这个。
df= rdd.map(lambda p: Row(ip=p[0], time=p[1], zone=p[2]))

在这个例子中,ip、时间和区域是行标题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接