Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah anda boleh mengira median dan kuantil dengan cekap untuk set data besar menggunakan Apache Spark?
Mengedarkan Median dan Kuantil dengan Apache Spark
Untuk pengiraan median teragih RDD integer besar menggunakan IPython dan Spark, pendekatan yang sesuai ialah menyusun RDD dan kemudian mengakses elemen tengah. Untuk mengisih RDD, gunakan kaedah sortBy(). Untuk mencari median, lakukan langkah berikut:
Untuk kuantil, anda boleh menggunakan kaedah approxQuantile() yang diperkenalkan dalam Spark 2.0 atau buat kod tersuai menggunakan algoritma Greenwald-Khanna. Fungsi ini mengira kuantil dengan ralat relatif yang ditentukan.
Pengiraan Kuantil Tersuai: Berikut ialah fungsi PySpark tersuai untuk anggaran kuantil:
<code class="python">def quantile(rdd, p, sample=None, seed=None): # ... (function implementation as provided in the original question)</code>
Pengiraan Kuantil Tepat (Spark < 2.0):
Jika ketepatan adalah diutamakan, pertimbangkan untuk mengumpul dan mengira kuantiti secara tempatan menggunakan NumPy. Pendekatan ini selalunya lebih cekap dan mengelakkan pengiraan teragih. Walau bagaimanapun, keperluan memori mungkin penting.
Kuantil UDAF Hive:
Apabila menggunakan HiveContext dengan nilai integral atau berterusan, UDAF Hive menyediakan pilihan lain untuk anggaran kuantil. Fungsi ini boleh diakses melalui pertanyaan SQL terhadap DataFrame:
<code class="sql">sqlContext.sql("SELECT percentile_approx(x, 0.5) FROM df")</code>
Atas ialah kandungan terperinci Bagaimanakah anda boleh mengira median dan kuantil dengan cekap untuk set data besar menggunakan Apache Spark?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!