2017-06-19 55 views
1

我想在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()'。 –

回答

1

在創建你錯過了架構()圓括號

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

在Python中,您需要構造爲StringType()而不是使用單例。

希望這解決了這個問題。

相關問題