如何使用Python Spark API手动指定数据框架?
问题描述:
我想在python中为spark数据框指定一个模式。我加载一旦数据后,我可以打印模式,我可能会看到类似如何使用Python Spark API手动指定数据框架?
df = spark.read.json(datapath)
df.schema
StructType(List(StructField(fldname,StringType,true)))
已经创造了这条巨蟒对象:df.schema
通过读取数据,我现在可以用它来阅读更多。但是,如果我不必先读取数据以获取模式,我想我会少一点 - 我想坚持模式,即使只是在脚本中输入模式。对于打字,我已经试过
from pyspark.sql.types import StructType, StructField, StringType
schema = StructType([ StructField('fldname', StringType, True)])
,但我得到的消息
AssertionError: dataType should be DataType
这是火花2.0.2
答
在创建你错过了架构()圆括号
schema = StructType([ StructField('fldname', StringType(), True)])
在Python中,您需要构造为StringType()而不是使用单例。
希望这解决了这个问题。
而不是'StringType',使用'StringType()'。 –