【发布时间】:2017-12-08 11:46:26
【问题描述】:
我正在尝试在一个窗口上收集列表,并且我想根据同一表中的一列值动态限制窗口大小。
select concat_ws('->', collect_list(CASE WHEN b.colA IN ("bla", "blabla") THEN concat_ws("-", colB,colC) END) OVER (PARTITION BY colD ORDER BY time-stamp ROWS BETWEEN colE PRECEDING AND CURRENT ROW)) AS myCol from ( select colA,colB,colC,colD,colE from mytable) a
colA|colB|colC|colD|colE|time-stamp
bla|abc|pqr|INDIA|1|2017-12-10
bla|abc|pqr|CHINA|1|2017-12-11
bla|abc|pqr|INDIA|2|2017-12-12
bla|abc|pqr|INDIA|3|2017-12-13
bla|abc|pqr|CHINA|2|2017-12-14
here hive 不接受具有有效数值范围内的 colE。我得到错误:
Error while compiling statement: FAILED: ParseException line 177:89 cannot recognize input near 'colE' 'preceding' 'AND' in windowframeboundary
【问题讨论】:
-
您可以添加您正在尝试的完整查询吗?
-
添加查询和示例数据
-
嗨,你找到解决这个问题的方法了吗?
标签: hadoop apache-spark hive apache-spark-sql hiveql