我有一个产品发布版本的数组,看起来像这样: version_release [1, 2, 5, 7, 8, 9] 我希望能够找到产品的下一个(或上一个)版本,已知当前版本号。 例如,我正在查看版本7,下一个版本是8,上一个版本是5。 在Hive中,有没有办法: 找到数组中“7”的索引(4) 增加(或减少)该索引以返回“8”(索引5)或“5”(索引3)?
在 SQL 中直接操作数组并不十分符合规范。你可以尝试首先使用 "PosExplode()" 将该列转换成每个数组值对应的 1 条记录,然后通过连接相邻位置的值(1 vs. 2, 2 vs. 3...)来获取后继关系。或者也许 BrickHouse 库 对你的用例有更高效的解决方案。
indexOf([value])
来返回一个值的位置,然后从索引位置加或减一。 - David