gpt4 book ai didi

hadoop - 在 hive 中转换之前如何分配?

转载 作者:可可西里 更新时间:2023-11-01 16:14:05 26 4
gpt4 key购买 nike

在 hive 中,我想按一列分布表,并为每个分布部分使用 python 进行转换。

例如:

我想像这样对具有特定D列编号的记录进行操作:

from
(select *
from raw_table
where D=12345
sort by A)
sb
insert overwrite table u_12345
partition (X,Y)
select transform(cast(A as double),B,C,D,E,F,X,Y)
using 'hello.py'
as A,B,C,D,E,F,X,Y
;

现在我想对所有不同的 D 列编号执行此操作,我编写了如下代码:

from raw_table
insert overwrite table clean_data
partition (X,Y)
select transform(cast(A as double),B,C,D,E,F,X,Y)
using 'hello.py'
as A,B,C,D,E,F,X,Y
distribute by D
;

但它并没有按照我想要的方式工作。

最佳答案

您可以使用分布子查询:

我还没有测试过这个:

From (select A,B,C,D,E,F,X,Y from raw_table distribute by D)
insert overwrite table clean_data
partition (X,Y)
select transform(cast(A as double),B,C,D,E,F,X,Y)
using 'hello.py'
as A,B,C,D,E,F,X,Y ;

在我的集群上工作:

create table clean-data as 
select
transform (key, B,C,D,E,F,G)
USING 'reducer_script.py' as (key, B,C,D,E,F,G_reduced)
from (key, B,C,D,E,F,G from raw_table distribute by KEY sort by KEY, D ) alias ;

关于hadoop - 在 hive 中转换之前如何分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25758590/

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