Heim >Backend-Entwicklung >Python-Tutorial >Wie können Sie mit Apache Spark Mediane und Quantile für große Datenmengen effizient berechnen?
Median und Quantile mit Apache Spark verteilen
Für die verteilte Medianberechnung einer großen ganzzahligen RDD mit IPython und Spark ist Sortieren der geeignete Ansatz das RDD und dann Zugriff auf das/die mittlere(n) Element(e). Um das RDD zu sortieren, verwenden Sie die Methode sortBy(). Um den Median zu ermitteln, führen Sie die folgenden Schritte aus:
Für Quantile können Sie die in Spark 2.0 eingeführte Methode approxQuantile() verwenden oder benutzerdefinierten Code mit dem Greenwald-Khanna-Algorithmus erstellen. Diese Funktionen berechnen Quantile mit einem angegebenen relativen Fehler.
Benutzerdefinierte Quantilberechnung: Hier ist eine benutzerdefinierte PySpark-Funktion zur Quantilschätzung:
<code class="python">def quantile(rdd, p, sample=None, seed=None): # ... (function implementation as provided in the original question)</code>
Exakte Quantilberechnung (Spark < 2.0):
Wenn Genauigkeit von größter Bedeutung ist, sollten Sie erwägen, die Quantile lokal mit NumPy zu sammeln und zu berechnen. Dieser Ansatz ist oft effizienter und vermeidet verteilte Berechnungen. Der Speicherbedarf kann jedoch erheblich sein.
Hive-UDAF-Quantil:
Bei Verwendung von HiveContext mit ganzzahligen oder kontinuierlichen Werten bieten Hive-UDAFs eine weitere Option zur Quantilschätzung. Auf diese Funktionen kann über SQL-Abfragen gegen einen DataFrame zugegriffen werden:
<code class="sql">sqlContext.sql("SELECT percentile_approx(x, 0.5) FROM df")</code>
Das obige ist der detaillierte Inhalt vonWie können Sie mit Apache Spark Mediane und Quantile für große Datenmengen effizient berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!