Я использую спарк 1.6. Мне нужно найти несколько процентилей для столбца в dataframe. Мои данные огромны, по крайней мере, 10 миллионов записей. Я пытался использовать контекст улья, как показано ниже:
hivecontext.sql("select percentile_approx(col,0.25),percentile_approx(col,0.5) from table")
Но этот подход очень медленный и занимает много времени. Я слышал о приблизительно Quantile, но, кажется, он доступен в версии 2.x. Есть ли альтернативный подход в spark 1.6, использующий фрейм данных spark для повышения производительности.
Я видел другой подход, использующий улей UDAF, как показано ниже
import org.apache.spark.sql.functions.{callUDF, lit}
df.agg(callUDF("percentile_approx", $"someColumn", lit(0.8)).as("percentile80"))
Улучшит ли этот подход производительность.