You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用R对S3中Parquet Gzip格式数据进行读写操作

在R中读写S3上的Parquet Gzip格式数据

嘿,我来帮你搞定这个需求!要在R里读取S3指定Bucket下的Parquet Gzip文件,还能把数据写回S3,咱们用几个专门的R包就能轻松实现,步骤很清晰:

1. 安装并加载必要的R包

核心用arrow包就够了——它对Parquet格式和S3存储的支持非常完善,还能自动处理Gzip压缩;另外可以搭配aws.s3包辅助S3身份验证(当然arrow也能直接读取本地AWS配置,两种方式都灵活)。

先安装包:

install.packages(c("arrow", "aws.s3"))

然后加载到环境中:

library(arrow)
library(aws.s3)

2. 配置S3访问权限

要让R能访问你的S3存储,得先配置身份验证,推荐两种方式:

  • 方式一:通过环境变量设置密钥(安全便捷)
    在R里直接设置你的AWS访问密钥和区域:
    Sys.setenv(
      AWS_ACCESS_KEY_ID = "你的AWS Access Key",
      AWS_SECRET_ACCESS_KEY = "你的AWS Secret Key",
      AWS_DEFAULT_REGION = "你的S3存储区域,比如us-east-1"
    )
    
  • 方式二:复用本地AWS CLI配置
    如果你已经在本地电脑上配置过AWS CLI(比如~/.aws/credentials文件里有凭证),arrow会自动读取这些配置,不用额外设置。

3. 读取S3上的目标Parquet Gzip文件

你要读取的文件路径是s3://c/Audit/test_gzip.parquet,用arrow的read_parquet()函数直接读取就行,它会自动识别Gzip压缩格式,不用额外参数:

# 构造S3文件路径
target_s3_path <- "s3://c/Audit/test_gzip.parquet"

# 读取文件到R数据框
df <- read_parquet(target_s3_path)

# 可以先查看前几行确认数据读取成功
head(df)

4. 将数据写回S3(Parquet Gzip格式)

如果修改数据后要写回S3,比如写回到同一个Bucket的Audit文件夹下的新文件,用write_parquet()函数,指定compression = "gzip"就能生成Gzip压缩的Parquet文件:

# 构造写回的S3路径,比如命名为new_test_gzip.parquet
write_back_s3_path <- "s3://c/Audit/new_test_gzip.parquet"

# 写入数据,指定Gzip压缩
write_parquet(df, write_back_s3_path, compression = "gzip")

小提示

  • 如果你的S3 Bucket是私有的,要确保你的AWS密钥拥有对应的权限:读取需要s3:GetObject,写入需要s3:PutObject。
  • arrow包处理大文件的性能很棒,比很多其他R包效率更高,适合处理大规模的Parquet数据。

内容的提问来源于stack exchange,提问作者Nikita Agarwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:38:27