Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi,
Need to normalize multiple columns.
Below is my data
ID| Col1| Col2
1 |a,b,c |d,e,f
2 |g,h,i |j,k,l
Expected result
ID| Col1| Col2
1 |a | d
1 |b | e
1 |c | f
2 |g | j
2 |h | k
2 | i | l
Below is my try,
String[] value1 = input_row.newColumn.split(","); String[] value2 = input_row.newColumn1.split(","); int index = input_row.dummy-1; for(int i= 0; i<value1.length;i++){ for(int j= i; j<=i;j++){ System.out.println(" Id="+input_row.dummy+" Col1="+value1[i]+" Col2="+value2[j]); output_row.dummy = input_row.dummy; output_row.newColumn = value1[i]; output_row.newColumn1 = value2[j]; } }
While printing the statement,
System.out.println(" Id="+input_row.dummy+" Col1="+value1[i]+" Col2="+value2[j]);
array is providing four results as expected.
But while passing to the output_row, only the last array is passed. Only one entry is avaliable in the result.
Could any one help out?
Below is the flow,
Inpit - > tjavarow -> output
Hello,
Your try is upto mark, Make use of tmap component to generate the sequence and use as index and then assign to col2.
Tjavarow logic:
String[] values2 = input_row.COL2.split(",");
int index = input_row.seq - 1;
output_row.ID = input_row.ID;
output_row.COL1 = input_row.COL1;
output_row.COL2 = values2[index];
Hope this helps your purpose.
Regards
Ganshyam
It works... Great
Hi Ganshyam,
I tried the java code you had provided in tjavarow using the following steps but i am getting
java.lang.ArrayIndexOutOfBoundsException: -1
i am also attaching the screenshots for the tmap and tjavarow components which i have used.
Thanks & Regards
Hi, you can use this way :
my data is :
lang = "EN,FR"
label = "sweatshirt,pull"
in the tJavaRow:
String [] listing_lang = {""};
String [] listing_label = {""};
listing_lang = input_row.lang.split(",");
listing_label = input_row.label.split(",");;
nb = StringHandling.COUNT(input_row.lang, ",");
in the tJavaFlex :
row9 being the out of my tJavaFlex