如何使用createDataFrame创建一个pyspark数据帧?

时间:2018-03-12 04:31:32

标签: pyspark

我知道这可能是一个愚蠢的问题。我有以下代码:

from pyspark.sql import SparkSession
rows = [1,2,3]
df = SparkSession.createDataFrame(rows)
df.printSchema()
df.show()

但我收到了一个错误:

createDataFrame() missing 1 required positional argument: 'data'

我不明白为什么会这样,因为我已经提供了'data',这是变量行。

由于

3 个答案:

答案 0 :(得分:1)

您必须使用构建模式创建SparkSession实例,并使用它来创建数据框,检查  https://spark.apache.org/docs/2.2.1/api/python/pyspark.sql.html#pyspark.sql.SparkSession

spark= SparkSession.builder.getOrCreate()

答案 1 :(得分:0)

尝试     row = [(1,),(2,),(3,)] ? 如果我没有错,createDataFrame()将2个列表作为输入:第一个列表是数据,第二个列表是列名称。数据必须是元组列表的列表,其中每个元组都是数据帧的一行。

答案 2 :(得分:0)

以下是使用createDataFrame create pyspark dataframe的步骤

创建sparksession

spark = SparkSession.builder.appName('SparkByExamples.com').getOrCreate()

创建数据和列

columns = ["language","users_count"]
data = [("Java", "20000"), ("Python", "100000"), ("Scala", "3000")]

从RDD创建DataFrame

rdd = spark.sparkContext.parallelize(data)
df= spark.createDataFrame(rdd).toDF(*columns)

第二种方法,直接创建数据框

df2 = spark.createDataFrame(data).toDF(*columns)