Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menghitung perkiraan kuantil kolom numerik dari DataFrame.
Hasil dari algoritma ini memiliki batas deterministik berikut: jika DataFrame memiliki elemen N dan jika kita meminta kuantil pada probabilitas p hingga kesalahan err, maka algoritma akan mengembalikan sampel x dari DataFrame sehingga peringkat x mendekati (p _ N). Lebih tepatnya, floor((p - err) _ N) <= rank(x) <= ceil((p + err) \* N).
Metode ini menerapkan variasi algoritma Greenwald-Khanna dengan beberapa pengoptimalan kecepatan.
Sintaksis
approxQuantile(col, probabilities, relativeError)
Parameter-parameternya
| Parameter | Tipe | Deskripsi |
|---|---|---|
col |
str, daftar, atau tuple | Satu nama kolom, atau daftar nama untuk beberapa kolom. |
probabilities |
daftar atau tuple float | Daftar probabilitas kuantil. Setiap angka harus berupa float dalam rentang [0, 1]. Misalnya, 0,0 adalah minimum, 0,5 adalah median, dan 1,0 adalah maksimum. |
relativeError |
float | Presisi target relatif untuk mencapai (>= 0). Jika diatur ke nol, kuantil yang tepat dihitung, yang bisa sangat mahal. Nilai yang lebih besar dari 1 memberikan hasil yang sama dengan 1. |
Pengembalian Barang
list
Jika col adalah string, mengembalikan daftar float. Jika col adalah daftar atau tuple string, mengembalikan daftar daftar float.
Catatan
Nilai null diabaikan dalam kolom numerik sebelum perhitungan. Untuk kolom yang hanya berisi nilai null, daftar kosong dikembalikan.
Examples
Hitung kuantil untuk satu kolom.
data = [(1,), (2,), (3,), (4,), (5,)]
df = spark.createDataFrame(data, ["values"])
df.stat.approxQuantile("values", [0.0, 0.5, 1.0], 0.05)
# [1.0, 3.0, 5.0]
Hitung kuantil untuk beberapa kolom.
data = [(1, 10), (2, 20), (3, 30), (4, 40), (5, 50)]
df = spark.createDataFrame(data, ["col1", "col2"])
df.stat.approxQuantile(["col1", "col2"], [0.0, 0.5, 1.0], 0.05)
# [[1.0, 3.0, 5.0], [10.0, 30.0, 50.0]]
Menangani nilai null.
data = [(1,), (None,), (3,), (4,), (None,)]
df = spark.createDataFrame(data, ["values"])
df.stat.approxQuantile("values", [0.0, 0.5, 1.0], 0.05)
# [1.0, 3.0, 4.0]