gpt4 book ai didi

hive - 在 Hive 中使用 inline(ARRAY)

转载 作者:行者123 更新时间:2023-12-04 19:05:49 24 4
gpt4 key购买 nike

之前是否有人能够使用该功能,我已经尝试了几乎所有组合以查看它是否有效。

这是我试图与内联一起使用的结构数组

[{"position":1,"price":124.0,"card_pos":"External","clicked":0},
{"position":2,"price":94.78,"card_pos":"Cbox","clicked":0},
{"position":3,"price":94.77,"card_pos":"External","clicked":0}]

这很好用:

select iq.*, iq.card.position as position, 
iq.card.price as price,iq.card.card_pos as card_pos,
iq.card.clicked as clicked
from
(
select *
from
hsim.im_metasearch
LATERAL VIEW explode(cards) card as card
) iq

我可以让内联函数工作,这有点烦人。
Hive Wiki 上的文档对于如何正确使用此功能非常模糊。

我们有 Hive 0.10(CDH4.6),内联函数绝对是我们发行版的一部分。

如果有人作为如何使用它的具体例子,请告诉我

我尝试了几种不同的语法

select *
from
hsim.im_metasearch
Lateral view inline(cards) as(position,price,card_pos,clicked)

select *
from
hsim.im_metasearch
Lateral view inline(cards) card as (position,price,card_pos,clicked)

我也试过把它放在选择中但没有成功
谢谢

最佳答案

这是我如何(成功)使用 inline 的示例.假设我们有一个数据集,例如

id    |    num
---------------
1 2.0
1 4.0
2 5.0
1 7.0
1 8.0
2 8.0
1 3.0
1 5.0
1 6.0
3 7.0

如果您执行查询
select histogram_numeric(num, 3)
from table

你会得到一个直方图,分为 3 个表示为结构数组的 bin。
[{'x':2.5, 'y:2.0'}, {'x':5.0, 'y':4.0}, {'x':7.5, 'y':4.0}]

大多数人希望以某种表格形式查看它,因此 inline功能。所以我们可以做
select inline(histogram_numeric(num, 3))
from table

这给
x    |    y
-------------
2.5 2.0
5.0 4.0
7.5 4.0

希望这可以帮助。

关于hive - 在 Hive 中使用 inline(ARRAY<STRUCT[,STRUCT]>),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25088488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com