Apabila berurusan dengan dataset besar, mencari median boleh menjadi tugas yang mahal dari segi pengiraan. Kaedah asli untuk mengira median, seperti sortBy() dan sortByKey() dalam Spark, tidak sesuai untuk RDD dengan berjuta-juta elemen.
Bermula dari Spark versi 2.0, kaedah approxQuantile() menyediakan penyelesaian anggaran untuk mengira kuantil, termasuk median. Kaedah ini menggunakan algoritma Greenwald-Khanna untuk memberikan anggaran median yang tepat dengan kos pengiraan yang minimum.
Spark 2.2 memperkenalkan sokongan untuk menganggarkan kuantiti merentas berbilang lajur. Ini membolehkan pengiraan kuantil pada set data yang lebih kompleks.
Selain menggunakan approxQuantile() secara langsung, ia juga boleh digunakan dalam pengagregatan SQL menggunakan fungsi approx_percentile. Fungsi ini memudahkan proses menganggarkan kuantiti dalam bingkai data.
Untuk versi Spark sebelum 2.0, kaedah alternatif wujud untuk menganggarkan median. Kaedah ini biasanya melibatkan pengisihan RDD dan memilih nilai yang sesuai berdasarkan panjang RDD. Walau bagaimanapun, kaedah ini mungkin tidak menawarkan tahap ketepatan yang sama seperti approxQuantile().
Jika menggunakan HiveContext, Hive User-Defined Aggregate Functions (UDAFs) menyediakan satu lagi pilihan untuk menganggar kuantiti. UDAF persentil_approx() dan percentile() boleh digunakan untuk nilai integral dan berterusan.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Median dan Kuantil dengan Cekap dengan Set Data Besar dalam Spark?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!