Saltar al contenido

Apache Spark: obtenga la cantidad de registros por partición

Queremos darte la mejor respuesta que descubrimos en línea. Nosotros esperamos que te resulte útil y si deseas aportar algo que nos pueda ayudar a crecer hazlo libremente.

Solución:

Yo usaría la función incorporada. Debería ser tan eficiente como sea posible:

import org.apache.spark.sql.functions.spark_partition_id

df.groupBy(spark_partition_id).count

Puede obtener la cantidad de registros por partición de esta manera:

df
  .rdd
  .mapPartitionsWithIndexcase (i,rows) => Iterator((i,rows.size))
  .toDF("partition_number","number_of_records")
  .show

Pero esto también iniciará un Spark Job por sí mismo (porque Spark debe leer el archivo para obtener la cantidad de registros).

Spark también podría leer las estadísticas de la tabla Hive, pero no sé cómo mostrar esos metadatos.

Para futuros usuarios de PySpark:

from pyspark.sql.functions  import spark_partition_id
rawDf.withColumn("partitionId", spark_partition_id()).groupBy("partitionId").count().show()

Aquí puedes ver las comentarios y valoraciones de los usuarios

Si para ti ha resultado provechoso este post, sería de mucha ayuda si lo compartes con el resto desarrolladores y nos ayudes a dar difusión a nuestro contenido.

¡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 *