0
我在網上搜索了這裏,但無法找到任何解決方案來解決我遇到的問題。使用MapType架構將PySpark DataFrame寫入實木複合格式
首先,我使用PySpark。我有數據作爲DataFrame,我想寫成實木複合地板。該模式是由什麼決定的是這樣的:
df_schema = StructType([StructField('p_id', StringType(), True),
StructField('c_id_map', MapType(StringType(), StringType(), True), True),
StructField('d_id', LongType(), True)])
我的數據確實有這些列和c_id_map是具有關鍵要麼是「E_ID」或「R_ID」,這是一個字符串值的Python字典(一些標識符)。
df = sqlContext.createDataFrame(hour_filtered_rdd, df_schema)
dfwriter = df.write
dfwriter.mode('overwrite')
dfwriter.format('parquet')
dfwriter.parquet(output_path)
鑲木文件寫出來,但是當我使用實木複合地板的工具來查看我看到的內容,該c_id_map始終是空的(即沒有打印任何內容:
我使用類似的寫入數據從貓命令),如:
c_id_map:
我說,數據存在字典之前寫作。所有其他數據類型(字符串和長整數)都被正確寫出。作爲解決方法,我將地圖數據存儲爲JSON字符串,但我想了解發生了什麼問題。
對此的任何想法?或者,鑲木地板工具的問題是否無法顯示地圖數據?