Distribution de la médiane et des quantiles avec Apache Spark
Pour le calcul de la médiane distribuée d'un grand RDD entier à l'aide d'IPython et Spark, l'approche appropriée consiste à trier le RDD puis accéder au(x) élément(s) intermédiaire(s). Pour trier le RDD, utilisez la méthode sortBy(). Pour trouver la médiane, effectuez ces étapes :
Pour les quantiles, vous pouvez utiliser la méthode approxQuantile() introduite dans Spark 2.0 ou créer du code personnalisé à l'aide de l'algorithme de Greenwald-Khanna. Ces fonctions calculent des quantiles avec une erreur relative spécifiée.
Calcul de quantile personnalisé : Voici une fonction PySpark personnalisée pour l'estimation de quantile :
<code class="python">def quantile(rdd, p, sample=None, seed=None): # ... (function implementation as provided in the original question)</code>
Calcul de quantile exact (Spark < 2.0) :
Si la précision est primordiale, envisagez de collecter et de calculer les quantiles localement à l'aide de NumPy. Cette approche est souvent plus efficace et évite les calculs distribués. Cependant, les besoins en mémoire peuvent être importants.
Quantile UDAF Hive :
Lors de l'utilisation de HiveContext avec des valeurs intégrales ou continues, les UDAF Hive offrent une autre option pour l'estimation des quantiles. Ces fonctions sont accessibles via des requêtes SQL sur un DataFrame :
<code class="sql">sqlContext.sql("SELECT percentile_approx(x, 0.5) FROM df")</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!