将大型SAS数据加载到R / Python中

时间:2015-11-10 17:42:51

标签: python r io sas

目前,我有几个50 GB的SAS数据文件(sas7bdat),我想将以前的SAS代码转换为R或Python等开源工具。最大的问题是如何处理这些巨大的文件...我试图将一个50 GB的文件导出到CSV文件中,然后在R中使用fread来加载它。但是,它在文件加载期间被粉碎。所以我想知道处理这个问题的最佳方法是什么?提前致谢!

1 个答案:

答案 0 :(得分:2)

首先要考虑的一些事项:

  • 未压缩的SAS文件非常庞大。 50GB可能<10GB(CSV)。
  • R是记忆猪。你无法用香草R
  • 做到这一点
  • 在处理列表(即记录)时,Python实际上对内存非常有效,它可能只适合/工作,具体取决于你想要做什么。
  • 既不提供开箱即用的并行性,它需要一个R package / python模块。因此,默认情况下,即使它适合内存,它也会很慢。
  • 你可以在某种程度上通过确保在任何地方使用iterables而不是将所有地方的所有内容一直转换成列表来逃避Python中的内存中所有问题。

但是一个方便的解决方案是将Python与 PySpark (或R与SparkR一起使用,但前者在目前更成熟)中使用:

  • 并非一切都需要立即记忆
  • 你可以获得开箱即用的并行性
  • 如果您是其中一个人&#39;在任何地方使用proc sql,您都可以利用Spark SQL轻松地重复使用您的工作。

查看项目:https://spark.apache.org