Presto for loop



我是presto的新手,我想知道是否有任何方法可以循环。我有一个查询,它按日期聚合了一些数据,当我运行它时,它会抛出错误:超过了 30GB 的最大内存大小。如果循环不是一种选择,我可以使用其他建议。

我正在使用的查询:

select  dt as DATE_KPI,brand,count(distinct concat(cast(post_visid_high as varchar),
         cast(post_visid_low as varchar)))as kpi_value
from hive.adobe.tbl 
  and dt >= date '2017-05-15'  and dt <= date '2017-06-13' 
group by 1,2

假设您正在使用,Hive 可以将源数据写入按品牌存储桶的表,然后使用 WHERE "$bucket" % 32 = <N> 处理存储桶组。

否则,您可以将查询分段为 n 个查询,然后在每个查询中处理 1/n 的"品牌"。 您可以使用WHERE abs(from_big_endian_64(xxhash64(to_utf8(brand)))) % 32 = <N>来划分品牌。

相关内容

  • 没有找到相关文章