本文将承接 Presto 动态过滤之 动态过滤条件数据的生成_王飞活的博客-CSDN博客继续通过走读代码来了解在 Presto (OpenLookeng)中DynamicFilterService中的动态过滤数据 合并 功能是如何实现的。 本文只要探索在 Presto 中groupby是怎么实现的。在Preso中,groupby的分组主要通过对数据Hash的数值比较进行分组,其中有2种情况,一直是仅有一个groupby字段而且字段是Bigint类型的,此场景下会使用BigintGroupByHash来实现分组,其他的情况则使用MultiChannelGroupByHash实现多列分组。 一开始用collect_set函数实现,发现对字段进行去重了,后来发现collect_list函数可以实现,现将两者的区别总结如下: 1、concat_ws和collect_set()函数实现(对某列进行去重) 其作用是将 多行 ... 1、字符串截取substr presto 语法: substr(string, start, length) → varchar   如: select substr(‘1599319787151’,1,10) substr(string, start) → varchar        如: select substr(‘1599319787151’,1) 而 hive 中:substr和substring都可以 的|| 操作 者用来连接与数组或相同类型的元素的数组: SELECT ARRAY [ 1 ] || ARRAY [ 2 ]; - [1,2] SELECT ARRAY [ 1 ] || 2... concat(concat(cast(cast(“chain_id” as decimal(10,0)) as varchar),’_’),cast(cast(“node_id” as decimal(10,0))as varchar)) cast(1.0 as decimal(10,0)) 转换为整形 cast( 1 as varchar) 转换为字符串 concat(“a”,“b”) 合并 字符串 1. 多行 合并 成一行 //方式一:使用string_agg函数,直接把一个表达式变成字符串 SELECT string_agg (DISTINCT fieldname, ',' order by fieldname ASC) FROM table; //方式二:使用array_agg函数,,把表达式变成一个数组,一般配合 array_to_string() 函数使用 SELECT array_to_string(array_agg(DISTINCT fieldname order by 1.先来一个demopublic static void main(String[] args) { Map<String, String> map1 = new HashMap<String, String>(){{ put("1", "a"); put("2", "b"); put("3", &