我最近从db2迁移到hiveql。我用一个查询递归地生成一系列数字,比如1到1000。under是使用的代码;
WITH TB (N) AS
(VALUES (100)
UNION ALL
SELECT N + 100
FROM TB
WHERE N + 1 <= 5000)
SELECT * FROM TB;
我可以用这个代码做任何我想要的序列,
但现在在hiveql中 VALUES()
或者 WITH TB (N)
似乎不像在db2中那样工作。有没有办法在hiveql中生成这样的序列?
1条答案
按热度按时间h7appiyu1#
可以使用此查询在配置单元中生成序列。
space()
返回给定长度的空间字符串,split
创建一个空格数组,posexplode
分解数组(生成行),可以使用索引生成序列: