tabla - ¿Cómo leo un parquet en R y lo convierto en un DataFrame R?
listas en r (4)
Me gustaría procesar archivos Apache Parquet (en mi caso, generados en Spark) en el lenguaje de programación R.
¿Hay un lector R disponible? ¿O se está trabajando en uno?
Si no, ¿cuál sería la forma más conveniente de llegar allí? Nota: hay enlaces de Java y C ++: https://github.com/apache/parquet-mr
Como alternativa a SparkR
, ahora sparklyr
usar sparklyr
:
# install.packages("sparklyr")
library(sparklyr)
sc <- spark_connect(master = "local")
spark_tbl_handle <- spark_read_parquet(sc, "tbl_name_in_spark", "/path/to/parquetdir")
regular_df <- collect(spark_tbl_handle)
spark_disconnect(sc)
Para leer un archivo de parquet en un cubo de Amazon S3, intente usar s3a en lugar de s3n. Eso me funcionó cuando leí archivos de parquet usando EMR 1.4.0, RStudio y Spark 1.5.0.
Si está utilizando Spark, ahora esto es relativamente simple con el lanzamiento de Spark 1.4. Vea el código de ejemplo a continuación que utiliza el paquete SparkR que ahora forma parte del marco central de Apache Spark.
# install the SparkR package
devtools::install_github(''apache/spark'', ref=''master'', subdir=''R/pkg'')
# load the SparkR package
library(''SparkR'')
# initialize sparkContext which starts a new Spark session
sc <- sparkR.init(master="local")
# initialize sqlContext
sq <- sparkRSQL.init(sc)
# load parquet file into a Spark data frame and coerce into R data frame
df <- collect(parquetFile(sq, "/path/to/filename"))
# terminate Spark session
sparkR.stop()
Se muestra un ejemplo ampliado en https://gist.github.com/andyjudson/6aeff07bbe7e65edc665
No tengo conocimiento de ningún otro paquete que pueda usar si no estuviera usando Spark.
Spark se ha actualizado y hay muchas cosas y funciones nuevas que están en desuso o han sido renombradas.
La respuesta de Andy está trabajando para la chispa v.1.4, pero en la chispa v.2.3 esta es la actualización donde funcionó para mí.
Descargue la última versión de apache spark https://spark.apache.org/downloads.html (punto 3 en el enlace)
extraer el archivo
.tgz
instalar el paquete
rstudio
enrstudio
install.packages(''devtools'')
Abre el
terminal
y sigue estos pasos.# This is the folder of extracted spark `.tgz` of point 1 above export SPARK_HOME=extracted-spark-folder-path cd $SPARK_HOME/R/lib/SparkR/ R -e "devtools::install(''.'')"
Vuelve a
rstudio
# load the SparkR package library(SparkR) # initialize sparkSession which starts a new Spark session sc <- sparkR.session(master="local") # load parquet file into a Spark data frame and coerce into R data frame df <- collect(read.parquet(''.parquet-file-path'')) # terminate Spark session sparkR.stop()