Skip to main content
Announcements
July 15, NEW Customer Portal: Initial launch will improve how you submit Support Cases. IMPORTANT DETAILS
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Normalize multiple columns

Hi,

 

Need to normalize multiple columns.

Below is my data

 

ID| Col1| Col2

1 |a,b,c |d,e,f

|g,h,i |j,k,l

 

Expected result

ID| Col1| Col2

1 |a | d

1 |b | e

1 |c | f

|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

Labels (3)
7 Replies
fdenis
Creator III
Creator III

you have to use tjavaFlex.
fdenis
Creator III
Creator III

tJava run for each row you need 1row --> 3 row !
fdenis
Creator III
Creator III

did you want 9 row?
1 |a | d
1 |b | d
1 |c | d
1 |a | e
1 |b | e
1 |c | e
1 |a | f
1 |b | f
1 |c | f
in this case you can use tNormalize.
Regards,
Ganshyam
Creator II
Creator II

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];

 

 

0683p000009LzkH.png

 

Hope this helps your purpose.

 

Regards

Ganshyam

Anonymous
Not applicable
Author

It works... Great

Anonymous
Not applicable
Author

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

 


normolize multi columns.docx
GRomain
Contributor III
Contributor III

Hi, you can use this way :

0695b00000G4mE8AAJ.jpgmy 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 :

0695b00000G4mFBAAZ.jpgrow9 being the out of my tJavaFlex