【问题标题】:writing small dataframe to csv creates a huge file将小数据帧写入 csv 会创建一个巨大的文件
【发布时间】:2018-04-25 11:36:49
【问题描述】:

我正在尝试将数据帧 T_df 写入 csv 文件,但是保存的“TFile.csv”文件在 Microsoft Azure / R 服务器上增长到大约 50GB。有没有人遇到过类似的情况,可以请教吗?

例子:

write.csv(T_df,"TFile.csv")

创建 50GB 的文件,而数据框不是那么大

object.size(T_df)
2449776 bytes

str(T_df)
'data.frame':   101994 obs. of  3 variables:

【问题讨论】:

  • 对于根本原因并不是一个真正的答案,但是您是否检查过使用其他功能时结果是否相同,例如data.table函数fwrite?
  • 我对不同版本的 R 和不同平台也有同样的问题。 data.table::fwrite() 确实快很多,没有这样的问题。

标签: r azure csv dataframe r-server


【解决方案1】:

不知道您的特定数据是否有什么特别之处,但我在运行 Microsoft R Server 9.3.0 版时看不到这一点。

> T_df <- data.frame(a = runif(101994), b = runif(101994), c = runif(101994))
> object.size(T_df)
2448752 bytes
> str(T_df)
'data.frame':   101994 obs. of  3 variables:
 $ a: num  0.248 0.504 0.197 0.634 0.407 ...
 $ b: num  0.226 0.686 0.556 0.629 0.412 ...
 $ c: num  0.959 0.122 0.214 0.666 0.23 ...
 > 
 > write.csv(T_df,"TFile.csv")

TFile.csv 为 6.1 M

【讨论】:

    猜你喜欢
    • 2018-03-01
    • 1970-01-01
    • 2014-04-27
    • 2023-03-25
    • 1970-01-01
    • 2019-01-16
    • 2014-12-29
    • 1970-01-01
    • 2019-09-20
    相关资源
    最近更新 更多