sparklyr for big csv file

时间:2017-05-30 10:31:17

标签: r apache-spark sparklyr

我正在尝试使用sparklyr加载具有一百万行和1000列的数据集。 我正在一个非常大的集群上运行Spark。数据的大小似乎仍然太大。我尝试了两种不同的方法:

这是数据集:(train_numeric.csv) https://www.kaggle.com/c/bosch-production-line-performance/data

1) - 将.csv放入hdfs     - spark_read_csv(spark_context,path)

2) - 将csv文件作为常规R数据帧读取     - spark_frame< -copy_to(sc,R-dataframe)

两种方式在数据集的子集上都能很好地工作,但在我尝试读取整个数据集时失败。

有人知道一种适合大型数据集的方法吗?

谢谢, 菲利克斯

1 个答案:

答案 0 :(得分:2)

问题是 - 你需要将整个数据集读入内存吗?

首先 - 请注意Spark evaluates transformations lazily。 将spark_read_csv内存参数设置为FALSE会使Spark映射文件,但不会在内存中复制它。只有在调用collect()时才会进行整个计算。

date {
           match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
           remove_field => ["timestamp"]
        }

因此,在进行任何计算之前,请考虑减少行和列,并将结果返回到R,如下例所示:

http://spark.rstudio.com/examples-caching.html#process_on_the_fly