2016-05-24 193 views
1

做了我的研究,但沒有發現任何內容。我想一個簡單的pandas.DataFrame轉換爲火花數據幀,這樣的:將Pandas Dataframe轉換爲Pyspark中的Spark Dataframe的TypeError

df = pd.DataFrame({'col1': ['a', 'b', 'c'], 'col2': [1, 2, 3]}) 
sc_sql.createDataFrame(df, schema=df.columns.tolist()) 

我得到的錯誤是:

TypeError: Can not infer schema for type: <class 'str'> 

我試過的東西更簡單:

df = pd.DataFrame([1, 2, 3]) 
sc_sql.createDataFrame(df) 

我獲得:

TypeError: Can not infer schema for type: <class 'numpy.int64'> 

有什麼幫助嗎?手動需要指定一個架構左右嗎?

sc_sql是一個​​,我在一個python 3.4和火花1.6 jupyter筆記本。

謝謝!

+1

我試了代碼工作正常,沒有錯誤。 – shivsn

+0

它不適合我,有或沒有模式... – neocortex

+0

您使用哪種火花版本? – shivsn

回答

1

它與你的火花版本有關,火花的最新更新使得類型推斷更加智能化。你可以通過添加這樣的架構來解決這個問題:

mySchema = StructType([ StructField("col1", StringType(), True), StructField("col2", IntegerType(), True)]) 
sc_sql.createDataFrame(df,schema=mySchema) 
相關問題