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

如何在R语言的{arrow}包中重新启用parquet功能?

如何重新启用R语言{arrow}包的Parquet功能?

问题背景

长期使用R的{arrow}库读写Parquet文件,今日功能失效:

  • 加载包时提示部分功能未启用
  • 执行arrow_info()显示parquet字段为FALSE
  • 调用write_parquet()触发错误

已尝试操作:重启R、卸载重装{arrow}并重启系统、Homebrew安装Arrow、更新R后重装{arrow}并重启。

环境信息:MacOS 13.3.1、R 4.3.0、Arrow R包11.0.0.3、Arrow C++库11.0.0。


解决方案

1. 彻底清理现有Arrow组件

  • 卸载R中的{arrow}包:
    remove.packages("arrow")
    
  • 通过Homebrew卸载Arrow C++库(彻底清除所有版本):
    brew uninstall apache-arrow --force
    
  • 手动删除R包残留文件:前往R包安装目录(如~/Library/R/4.3/library/或/Library/Frameworks/R.framework/Versions/4.3/Resources/library/),删除arrow文件夹。

2. 安装编译依赖与完整Arrow库

  • 安装编译所需工具:
    brew install cmake pkg-config
    
  • 重新安装带Parquet支持的Arrow C++库:
    brew install apache-arrow
    

    注:新版本Homebrew默认包含Parquet支持,若旧版本需添加--with-parquet参数。

3. 从源码编译安装{arrow}包并强制启用Parquet

  • 在R中设置环境变量,指定Arrow库路径并开启Parquet支持:
    # 替换为Homebrew中Arrow的实际安装路径,可通过`brew list apache-arrow`查看
    Sys.setenv(ARROW_HOME = "/opt/homebrew/Cellar/apache-arrow/11.0.0")
    Sys.setenv(ARROW_PARQUET = "ON")
    
  • 从源码安装{arrow}包:
    install.packages("arrow", type = "source")
    
    安装过程中需确认无Parquet相关编译错误。

4. 验证功能恢复

  • 加载包并检查Parquet状态:
    library(arrow)
    arrow_info()
    
    确认输出中parquet字段为TRUE。
  • 测试读写功能:
    test_data <- data.frame(id = 1:3, value = c("foo", "bar", "baz"))
    write_parquet(test_data, "test_parquet.parquet")
    read_parquet("test_parquet.parquet")
    

额外排查点

  • 若仍有问题,检查是否存在禁用Parquet的环境变量:Sys.getenv(c("ARROW_DISABLE_PARQUET", "ARROW_HOME")),确保无禁用设置。
  • 确认Arrow R包版本与C++库版本完全匹配(当前均为11.0.0,符合要求),若版本不一致,可指定版本安装:
    install.packages("arrow", version = "11.0.0.3", type = "source")
    

内容的提问来源于stack exchange,提问作者Mikkel Roald-Arbøl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 21:27:33