Hadoop 在蜂巢中转换前如何分配?
在配置单元中,我希望将表按一列分发,并使用python对每个分发的部分进行转换 例如: 我想对具有特定列D编号的记录执行以下操作:Hadoop 在蜂巢中转换前如何分配?,hadoop,hive,Hadoop,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 'he
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 ;