我尝试在Spark SQL中使用ARRAY_AGG函数。当我使用它时,它抛出错误
〈〈未定义函数:'array_agg'。此函数既不是注册的临时函数,也不是在数据库中注册的永久函数'default〉〉
Dataset<Row> finalDS1 = sparkSession.sql("select array_agg(company_private_id) from TEMP_COMPANY_PRIVATE_VIEW");
有人知道如何解决这个问题吗?我试图比较一个数组和另一个列。为此,我使用ARRAY_AGG。
"select cp.array_column & (select array_agg(int_column) from getCompanyPrivateDS ds1) as filtered_data from getCompanyPrivateDS cp"
1条答案
按热度按时间brgchamk1#
我认为这是Spark的一个文档错误,他们在函数列表中清楚地显示了array_agg():https://spark.apache.org/docs/latest/api/sql/index.html#array_agg,但我也经历过这个功能在Spark 3.1.2上不起作用
Collect_set()和collect_list()应该可以满足您的需求:前者会产生重复数据消除结果,而后者不会。