【问题标题】:How to load objects from S3 bucket into Spark in RStudio?如何将对象从 S3 存储桶加载到 RStudio 中的 Spark 中?
【发布时间】:2019-01-06 12:49:17
【问题描述】:

S3 存储桶中的对象大小为 5.3 GB。为了将对象转换为数据,我使用了get_object("link to bucket path")。但这会导致内存问题。

所以,我在 RStudio 中安装了 Spark 2.3.0 并尝试将此对象直接加载到 Spark 中,但是将对象直接加载到 spark 中的命令未知。 library(sparklyr) library(dplyr) sc <- spark_connect(master = "local")

如果我将对象转换为可读的数据类型(例如 R 中的 data.frame/tbl),我将使用 copy_to 将数据从 R 传输到 spark 中,如下所示:

将数据复制到 Spark

spark_tbl &lt;- copy_to(spark_conn,data)

我想知道如何在 spark 中转换对象?

相关链接是

  1. https://github.com/cloudyr/aws.s3/issues/170

  2. Sparklyr connection to S3 bucket throwing up error

任何指导将不胜感激。

【问题讨论】:

  • 转换是什么意思?
  • 将对象类型转换为数据。这样我就可以将它用作 R 中的 data.frame 或 tibble。目前,该对象在 R 中不可读,除非它转换为任何类型的 data.frame
  • get_object 返回 list 如果我没记错的话。我们无法说出它的外观或您期望的输出。请发帖minimal reproducible example

标签: r apache-spark amazon-s3 sparklyr s3-bucket


【解决方案1】:

解决方案。

我试图从 S3 存储桶中读取 5.3 GB 的 csv 文件。但由于 R 是单线程的,因此会出现内存问题(IO 异常)。

但是,解决方案是在 R (library(sparklyr)) 中加载 sparklyr,因此现在计算机中的所有内核都将被使用。

get_object("link to bucket path") 可以替换为 spark_read_csv("链接到存储桶路径").由于 RStudio 使用所有内核,我们没有内存问题。

此外,根据文件扩展名,您可以更改功能: ´spark_load_table,spark_read_jdbc,spark_read_json,spark_read_libsvm,spark_read_parquet,spark_read_source,spark_read_table,spark_read_text,spark_save_table,spark_write_csv,spark_write_jdbc,spark_write_json,spark_write_parquet,spark_write_source,spark_write_table,spark_write_text´

【讨论】:

    猜你喜欢
    • 2022-01-07
    • 2011-12-15
    • 1970-01-01
    • 2015-09-12
    • 2017-03-20
    • 1970-01-01
    • 2018-06-03
    • 2018-06-28
    • 1970-01-01
    相关资源
    最近更新 更多