【问题标题】:sparklyr for big csv file用于大 csv 文件的 sparklyr
【发布时间】:2017-10-30 18:48:42
【问题描述】:

我正在尝试使用 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

这两种方法在数据集的一个子集上都可以正常工作,但是当我尝试读取整个数据集时却失败了。

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

谢谢, 费利克斯

【问题讨论】:

  • 你遇到了什么错误

标签: r apache-spark sparklyr


【解决方案1】:

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

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

spark_read_csv(sc, "flights_spark_2008", "2008.csv.bz2", memory = FALSE)

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

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

【讨论】:

  • 我明白,但我实际上需要读入整个数据框
  • 但是为什么呢?你打算如何处理这些数据?我仍然建议将内存设置为 FALSE 并管道您要执行的操作。
  • 小警告:将memory 设置为TRUE 意味着您的数据将被缓存在 spark 中,如果您想执行多个操作Spark Dataframe.
猜你喜欢
  • 2017-04-09
  • 2020-05-01
  • 1970-01-01
  • 2017-08-21
  • 2018-12-14
  • 2021-05-30
  • 1970-01-01
  • 2016-11-29
  • 2018-05-22
相关资源
最近更新 更多