如何在没有任何其他依赖项(如 Spark、Python 等)的情况下将镶木地板文件读取为 R data.frame?

Raj*_*aha 5 r parquet

我需要在 R 中读取一些“paraquet”文件。使用的解决方案很少

  1. Sparklyr::spark_read_parquet(需要“spark”)
  2. 网状(需要Python)

现在的问题是我不允许安装 R 以外的任何工具。R 中是否有任何可用的软件包可以在不使用任何其他工具的情况下读取“paraquet”?

Uwe*_*orn 6

你可以用arrow它(与Python中的相同)pyarrow),但现在也为 R 打包了(不需要 Python)。由于 CRAN 上尚不可用,因此您必须先手动安装 Arrow C++:

\n\n
git clone https://github.com/apache/arrow.git\ncd arrow/cpp && mkdir release && cd release\n\n# It is important to statically link to boost libraries\ncmake .. -DARROW_PARQUET=ON -DCMAKE_BUILD_TYPE=Release -DARROW_BOOST_USE_SHARED:BOOL=Off\nmake install\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后就可以安装R了arrow包:

\n\n
devtools::install_github("apache/arrow/r")\n
Run Code Online (Sandbox Code Playgroud)\n\n

并用它来加载 Parquet 文件

\n\n
library(arrow)\n#> \n#> Attaching package: \'arrow\'\n#> The following object is masked from \'package:utils\':\n#> \n#>     timestamp\n#> The following objects are masked from \'package:base\':\n#> \n#>     array, table\nread_parquet("somefile.parquet", as_tibble = TRUE)\n#> # A tibble: 10 x 2\n#>        x       y\n#>    <int>   <dbl>\n#> \xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

编辑(2019年9月22日)

\n\n

现在可以在 CRAN 上使用,安装使用install.packages("arrow")

\n