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_tbl <- copy_to(spark_conn,data)
我想知道如何在spark中转换对象?
相关链接应该是
任何指导将不胜感激。
答案 0 :(得分:0)
解决方案。
我正在尝试从S3存储桶读取5.3 GB的csv文件。但是由于R是单线程的,所以它带来了内存问题(IO异常)。
但是,解决方案是将sparklyr加载到R(库(sparklyr))中,因此现在将利用计算机中的所有内核。
get_object(“链接到存储桶路径”)可以替换为 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_text,