約トップk
文字列、ブール値、日付、タイムスタンプ、または数値の列col内で最も頻繁に出現する上位kの項目値とその概算数を返します。 各カウントの誤差は最大2.0 * numRows / maxItemsTrackedになる可能性があります ( numRowsは行の合計数)。k (自信: 5) とmaxItemsTracked (自信: 10000) は両方とも整数です。 maxItemsTrackedの値が高ければ高いほど、メモリ使用量は増加しますが、精度は向上します。異なる項目がmaxItemsTracked未満の列では、正確な項目数が生成されます。NULL 値は結果に独自の値として含まれます。
結果は、 item個の値(元の入力タイプ)とその出現回数count (long タイプ)を含む構造体の配列として返され、カウントの降順で並べ替えられます。
構文
Python
from pyspark.databricks.sql import functions as dbsf
dbsf.approx_top_k(col, k=5, maxItemsTracked=10000)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| 上位 k 項目を検索する列。 |
|
| 返される上位アイテムの数。デフォルトは 5 です。 |
|
| 追跡する個別のアイテムの最大数。デフォルトは 10000 です。値を大きくすると精度は向上しますが、メモリ使用量は増加します。 |
例
Python
from pyspark.sql.functions import col
from pyspark.databricks.sql.functions import approx_top_k
item = (col("id") % 3).alias("item")
df = spark.range(0, 1000, 1, 1).select(item)
df.select(
approx_top_k("item", 5).alias("top_k")
).printSchema()
Output
root
|-- top_k: array (nullable = false)
| |-- element: struct (containsNull = false)
| | |-- item: long (nullable = true)
| | |-- count: long (nullable = false)