Forum Discussion

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

How to perform looping for multiple columns to get a single column data

If Iteration 1 then I have to concat all the columns with some special characters and spaces. If the iteration goes to 2nd time them concat all the columns with some special characters and spaces lik...
  • sshaik's avatar
    sshaik
    3 years ago


    Iteration condition: IF @ITERATION=1 THEN ($TYP : $A : $B : ‘A’ : $C : SPACE(6) : $$CD : SPACE(17) )ELSE IF @ITERATION=2 THEN ($TYP : $A : $B : ‘B’ : $NO : $G : SPACE(31) )ELSE IF @ITERATION=3 THEN ($TYP : $A : $B : ‘$C’ : $NO : SPACE(16) : $F : $DT : $GH : SPACE(23) )ELSE ($TYP : $A : $B : ‘D’ : $NO : SPACE(61) : $D )
    In mapper split the Iteration conditions into 4 columns with different names
    And then make copy of data. map 1st iteration column to $RECORD column and follow the same for remaining 3 iteration conditions. The target column should be $RECORD for all 4 mappers.
    After that I used union and capture the $RECORD column in mapper and finally Got the result.

  • sshaik's avatar
    2 years ago

    Iteration condition: IF @ITERATION=1 THEN ($TYP : $A : $B : ‘A’ : $C : SPACE(6) : $$CD : SPACE(17) )ELSE IF @ITERATION=2 THEN ($TYP : $A : $B : ‘B’ : $NO : $G : SPACE(31) )ELSE IF @ITERATION=3 THEN ($TYP : $A : $B : ‘$C’ : $NO : SPACE(16) : $F : $DT : $GH : SPACE(23) )ELSE ($TYP : $A : $B : ‘D’ : $NO : SPACE(61) : $D )

     

    According to this iteration condition, we have to generate the values till to the last iteration i.e., iteration4 ($TYP: $A: $B : ‘D’ : $NO : SPACE(61) : $D ).

     

    In mapper I’m getting the $A,$B,$C,$D FIELDS along with those columns need to add spaces ….

    In a mapper I have spitted the expression into 4 parts like

    ITERATION=1  $TYP : $A : $B : ‘A’ : $C : SPACE(6) : $CD : SPACE(17))   ---$LVRECORD1

    ITERATION=2 ($TYP : $A : $B : ‘B’ : $NO : $G : SPACE(31) )   ---$LVRECORD2

    ITERATION=3  ($TYP : $A : $B : ‘$C’ : $NO : SPACE(16) : $F : $DT : $GH : SPACE(23) )--- $LVRECORD3

    ITERATION=4  ($TYP: $A: $B : ‘D’ : $NO : SPACE(61) : $D ). ) ---$LVRECORD4

    In the next mapper

     

    Next mapper

     

     

    Same for all the 4 source columns I have taken the target as $LVRECORD

    Output:

    ABCD                 CD                         A                                                                                   iteration1

    ABCD                 NO         G                          A                                                                     iteration2

    ABCD                 CD           F            DTGH                                               A                          iteration3

    TYP                     ADNO                 CD                          A                                                       iteration4