如何使用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

+0

而不是'StringType',使用'StringType()'。 –

在创建你错过了架构()圆括号

schema = StructType([ StructField('fldname', StringType(), True)]) 

在Python中,您需要构造为StringType()而不是使用单例。

希望这解决了这个问题。