Saltar al contenido

Leer todos los archivos de Parquet guardados en una carpeta a través de Spark

Solución:

Spark no escribe / lee el parquet de la forma que usted cree.

Utiliza la biblioteca Hadoop para escribir / leer particionado lima de parquet.

Por lo tanto, su primer archivo de parquet está debajo del camino. /tmp/test/df/1.parquet/ dónde 1.parquet es un directorio. Esto significa que al leer de parquet, deberá proporcionar la ruta a su directorio de parquet o la ruta si es un archivo.

val df = spark.read.parquet("/tmp/test/df/1.parquet/")

Le aconsejo que lea la documentación oficial para obtener más detalles. [cf. SQL Programming Guide – Parquet Files]

EDITAR:

Debes estar buscando algo como esto:

scala> sqlContext.range(1,100).write.save("/tmp/test/df/1.parquet")

scala> sqlContext.range(100,500).write.save("/tmp/test/df/2.parquet")

scala> val df = sqlContext.read.load("/tmp/test/df/*")
// df: org.apache.spark.sql.DataFrame = [id: bigint]

scala> df.show(3)
// +---+
// | id|
// +---+
// |400|
// |401|
// |402|
// +---+
// only showing top 3 rows

scala> df.count
// res3: Long = 499

También puede utilizar comodines en su URI de rutas de archivo.

Y puede proporcionar múltiples rutas de archivos de la siguiente manera:

scala> val df2 = sqlContext.read.load("/tmp/test/df/1.parquet","/tmp/test/df/2.parquet")
// df2: org.apache.spark.sql.DataFrame = [id: bigint]

scala> df2.count
// res5: Long = 499
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *