我是第一次接触presto,我想知道是否有任何方法可以使用for循环。我有一个按日期聚合数据的查询,当我运行它时,它抛出了一个错误:超过了30 of的最大内存大小。如果循环不是一个选项,我可以使用其他建议。
我使用的查询:
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发布于 2017-06-15 13:17:49
假设您使用的是Hive,您可以将源数据写到一个按品牌进行存储桶的表中,然后使用WHERE "$bucket" % 32 = <N>处理存储桶组。
否则,您可以将查询分成n个查询,然后在每个查询中处理1/n的“品牌”。你使用WHERE abs(from_big_endian_64(xxhash64(to_utf8(brand)))) % 32 = <N>来包装这些品牌。
https://stackoverflow.com/questions/44554180
复制相似问题