r - 如何将对象从 S3 存储桶加载到 RStudio 中的 Spark 中?
问题描述
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 <- copy_to(spark_conn,data)
我想知道如何转换 spark 中的对象?
相关链接将是
任何指导将不胜感激。
解决方案
解决方案。
我试图从 S3 存储桶中读取 5.3 GB 的 csv 文件。但是由于 R 是单线程的,它会产生内存问题(IO 异常)。
但是,解决方案是在 R (library(sparklyr)) 中加载 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_source、spark_write_table、spark_write_text
推荐阅读
- python - 加速重复数据删除 - Python?
- drupal - 从 URL 获取 TWIG 中的当前节点 ID
- ios - 如何使用 react-native-push-notification-ios / push-notification-ios 查看我的通知
- linux-kernel - 设备驱动程序和文件系统之间的关系是什么
- kubernetes - 尝试执行从初始化容器复制的文件时,Kubernetes 卷 emptyDir 权限被拒绝
- tcl - 如何在 tcl 中读取 xlsx 工作表文件?
- laravel - 在具有非公共 URL 的 Laravel 应用程序上使用 Elastic Beanstalk 工作程序和 Amazon SQS
- python - 如何在指定签名类型的同时将字符串参数从另一个内部传递给 numba njit python 函数?
- python - 使用 Python 移动 Dropbox 智能同步文件/文件夹
- c - 像堆栈这样的段使用需求分页吗?