我知道这可能是一个愚蠢的问题。我有以下代码:
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',这是变量行。
由于
答案 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)