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)