IF/else statement usage in tMap

Two Stars

IF/else statement usage in tMap

How to compare and load data between two tables using talend, if I want to do the if/else to convert the kb/s to Mb/s how can I do that? After that, I have to take the higher value between the load_in & load_out column after the conversion. I'm very new to java & I need your help.

 

.-------+-------------+-------------+--------+--------+---------+---------.
| tLogRow_1 |
|=------+-------------+-------------+--------+--------+---------+--------=|
|site_id|load_in |load_out |loadin_A|loadin_B|loadout_A|loadout_B|
|=------+-------------+-------------+--------+--------+---------+--------=|
|8495A |3.13 Mb/s |22.82 Mb/s |3.13 |Mb/s |22.82 |Mb/s |

|8208B  |65.61  kb/s  |54.81  kb/s  |65.61   |kb/s    |54.81    |kb/s     |

Forteen Stars

Re: IF/else statement usage in tMap

You could do this in few steps

 

  1. If column contain Mb/s (check function INDEX)
    1. remove this text from column - ColumnName.replaceAll(" Mb/s", "")
    2. then convert value to double - Double.parseDouble(ColumnName)
  2. If column contain Kb/s
    1. remove this string - ColumnName.replaceAll(" kb/s", "")
    2. convert to double - Double.parseDouble(ColumnName)
    3. divide by 1024
  3. compare values - use ? construction - ColumnName1 > ColumnName2? ColumnName1:ColumnName2
-----------
Two Stars

Re: IF/else statement usage in tMap

When I insert this into the T-Map at the load in column;

 

If column contain Mb/s (check function INDEX)

  1. remove this text from column - ColumnName.replaceAll(" Mb/s", "")
  2. then convert value to double - Double.parseDouble(ColumnName)

Exception in component tMap_4 (TMNGBH_MAXXX)
java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at sun.misc.FloatingDecimal.parseDouble(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at leasedline.tmngbh_maxxx_0_1.TMNGBH_MAXXX.tHashInput_1Process(TMNGBH_MAXXX.java:4490)
at leasedline.tmngbh_maxxx_0_1.TMNGBH_MAXXX.tFileInputExcel_1Process(TMNGBH_MAXXX.java:3428)
at leasedline.tmngbh_maxxx_0_1.TMNGBH_MAXXX.runJobInTOS(TMNGBH_MAXXX.java:6575)
at leasedline.tmngbh_maxxx_0_1.TMNGBH_MAXXX.main(TMNGBH_MAXXX.java:6424)

 

I get this one. How can I remove the empty string. I have tried with treplace but it still shows this error.

 

 

What’s New for Talend Spring ’19

Watch the recorded webinar!

Watch Now

Definitive Guide to Data Quality

Create systems and workflow to manage clean data ingestion and data transformation.

Download

Tutorial

Introduction to Talend Open Studio for Data Integration.

Watch

Downloads and Trials

Test drive Talend's enterprise products.

Downloads