當我使用 pyspark 將資料保存到單個 csv 檔案時,我得到的檔案大小比.toPandas()使用to_csv().
有什么想法會導致如此大的差異嗎?
uj5u.com熱心網友回復:
有幾件事會影響尺寸差異。
- emptyValue:默認情況下,Spark
df.write.csv將使用包裝雙引號保存空值。這會為 Spark 的 . 每個空值增加 2 個字符write。要禁用雙引號換行,請使用.csv(path, emptyValue='')
# Spark write.csv
some value,"",""
# Pandas.to_csv
some value,,
- Panda 的資料型別隱式轉換。:當您在 Spark 中具有可為空的整數值時,Pandas 會將整數轉換為浮點數,因為在 Pandas 中整數不可為空。這將減少 Spark 的一些字符
write。
# Spark write.csv
some value,1000,
some value,,
# Pandas .to_csv
some value,1000.0,
some value,,
其他小事可能是 Spark 不會默認寫入標頭,而 Pandas 會。或者 Pandasindex默認會寫入 value 而 Spark 沒有index.
我認為還有更多的事情可能會影響兩個平臺存盤資料的方式。為了觀察差異,我會保存部分資料并嘗試以純文本格式查看檔案以查看差異。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/474822.html
上一篇:SparkSQL中的反連接后聯合
