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)