我正在尝试使用似乎是创建Spark DataFrames的规范" Hello World"来创建一个数据帧,并且无法理解其失败的原因。帮助!
from pyspark.sql.types import *
schema = StructType([StructField("product", StringType(), True)])
l = [('foo')]
rdd = sc.parallelize(l)
df = sqlContext.createDataFrame(rdd, schema)
df.show()
上面的代码下方抛出以下错误
ValueError: Unexpected tuple 'foo' with StructType`
代码基本上是直接从pyspark.sql模块上抬起。
那是因为Createataframe需要RDD [row]作为参数:
df = sqlContext.createDataFrame(rdd.map (lambda x: Row(x)), schema)
将为您提供正确的DataFrame
完整代码,测试的火花1.6:
from pyspark.sql.types import *
schema = StructType([StructField("product", StringType(), True)])
l = [('foo')]
rdd = sc.parallelize(l)
df = sqlContext.createDataFrame(rdd.map (lambda x: Row(x)), schema)
df.show()