approxQuantile (DataFrameStatFunctions)

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]