gpt4 book ai didi

hadoop - 加入 Pig Apache 后难以创建包

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

我需要对我的一部分数据进行反规范化。我有一些数据 donnees_porteur(JSON 格式),我想在其中集成 donnees_enfant(CSV 格式)

donnees_enfant = LOAD '/user/cloudera/enfn.csv' USING PigStorage(';') AS (NUM_CART_enf,NUM_ENFN,ANNEES_NAIS);   
donnees_porteur = LOAD '/user/cloudera/part*' USING JsonLoader();

编辑:

    donnees_porteur: {
Id: bytearray,
Infos: (cod_civl: bytearray,lb_civl: bytearray,nom: bytearray,prnm: bytearray,age: bytearray),
Geo: (cod_regn: bytearray,cod_depr: bytearray,cod_comm: bytearray,cp: bytearray,lb_comm: bytearray,cod_npai: bytearray,dt_npai: bytearray,email: bytearray),
Socio: (nb_enf: bytearray,cod_socio: bytearray,lb_socio: bytearray,cod_socio_conj: bytearray,lb_socio_conj: bytearray,cod_sit_faml: bytearray,lb_sit_faml: bytearray),
Segm: {(cod_segm: bytearray,cod_typ_segm: bytearray,dat_deb: bytearray,dat_fin: bytearray)}}

-- 我在 porteur 和 enfant 之间进行连接(基数 1,n):

test= FOREACH 
(JOIN donnees_porteur BY Id LEFT, donnees_enfant BY NUM_CART_enf)
GENERATE donnees_porteur::Id AS ID,
{(donnees_enfant::NUM_CART_enf,donnees_enfant::NUM_ENFN)} AS ENFANT:{(id_enf,numero)};

-- 我将 porteur 的所有 enfants 分组为只有一行

test2 = GROUP test BY ID;

-- 我得到一个包,里面有不同的搬运工组,每个都有一个婴儿。所以我需要重建这条线。我尝试:

test3= FOREACH test2 GENERATE test;

但这并不好。

结果测试2:

(0,{(0,{(0,2)}),(0,{(0,3)}),(0,{(0,1)})})
(1,{(1,{(1,3)}),(1,{(1,1)}),(1,{(1,2)})})
(2,{(2,{(2,1)}),(2,{(2,2)})})

但我想获得:

(0,({(0,2),(0,3),(0,1)}))
(1,({(1,3),(1,1),(1,2)}))
(2,({(2,1),(2,2)}))

你能帮帮我吗?


编辑:

我发布了一个“简单”的问题示例。

这才是真正的考验:

denorm2 = FOREACH (JOIN donnees_porteur BY Id LEFT, donnees_enfant BY NUM_CART_enf) GENERATE donnees_porteur::Id AS ID, 
donnees_porteur::Infos AS INFOS,
donnees_porteur::Geo AS Geo,
donnees_porteur::Segm AS Segm,
{(donnees_enfant::NUM_CART_enf,donnees_enfant::NUM_ENFN)} AS ENFANT:{(id_enf,numero)};

以ID为字段,INFOS,GEO,作为元组,像ENFANT一样的包包

最佳答案

test3=FOREACH test2 生成 $0, $1.ENFANT;

test3 将有组,只有 ENFANT 部分

关于hadoop - 加入 Pig Apache 后难以创建包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25379571/

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