Forum Discussion

kkishore's avatar
kkishore
New Contributor III
3 years ago
Solved

Converting rows into column

I am trying below data converting rows into columns

input:
[
{
“CARRIERCODE”: “abc”,
“SHIPCARRIERTRACKINGNUM”: “531”,
“DATETIMEVALUE”: “2022-05-16 08:05:00”,
“DATETIMETYPE”: “ACTUAL_DELIVERY”,
“DATEVALUE”: “2022-05-16”
},
{
“CARRIERCODE”: “abc”,
“SHIPCARRIERTRACKINGNUM”: “531”,
“DATETIMEVALUE”: “2022-05-11 09:31:00”,
“DATETIMETYPE”: “ACTUAL_PICKUP”,
“DATEVALUE”: “2022-05-11”
},
{
“CARRIERCODE”: “abc”,
“SHIPCARRIERTRACKINGNUM”: “531”,
“DATETIMEVALUE”: “2022-05-11 12:00:00”,
“DATETIMETYPE”: “SHIP”,
“DATEVALUE”: “2022-05-11”
},
{
“CARRIERCODE”: “abc”,
“SHIPCARRIERTRACKINGNUM”: “531”,
“DATETIMEVALUE”: “2022-05-11 09:49:00”,
“DATETIMETYPE”: “ACTUAL_TENDER”,
“DATEVALUE”: “2022-05-11”
},

expected output:

any leads here

  • Hi @kkishore,

    Group the incoming data by CARRIERCODE & SHIPCARRIERTRACKINGNUM:

    And add the following expression in a mapper after the group by snap:

    $group.map(x=>{[x.DATETIMETYPE+"_DATETIMEVALUE"]:x.DATETIMEVALUE,[x.DATETIMETYPE+"_DATEVALUE"]:x.DATEVALUE}).reduce((acc,curr)=>acc.extend(curr),{}).extend($groupBy)

    Hope this helps,
    Regards

3 Replies

  • Hi @kkishore,

    Group the incoming data by CARRIERCODE & SHIPCARRIERTRACKINGNUM:

    And add the following expression in a mapper after the group by snap:

    $group.map(x=>{[x.DATETIMETYPE+"_DATETIMEVALUE"]:x.DATETIMEVALUE,[x.DATETIMETYPE+"_DATEVALUE"]:x.DATEVALUE}).reduce((acc,curr)=>acc.extend(curr),{}).extend($groupBy)

    Hope this helps,
    Regards