Multi Window Analytics

Type

transform

Class

fire.nodes.etl.NodeMultiWindowAnalytics

Fields

Name

Title

Description

analyticsCols

AnalyticsColumn

windowFunctions

Window Function

Window Function Name

partitionByCols

PartitionBy

partition column names separated by comma(,)

orderByCols

OrderBy

order by column names separated by comma(,)

outPutColumns

OutPutColumn

Enter output field(column) name

Details

It creates a new Dataframe with new ouuput columns appended to the incoming Dataframe which are computed based on application of Window Function on Analytics Columns.

This node facilitates computation of multiple Analytics Columns.

Examples

Incoming Dataframe has following rows:

EMP_CD    |    EMP_NAME    |    DEPT    |    SALARY    |    AGE
------------------------------------------------------------------------
E01       |    ANTHONY     |    HR      |    50000     |    40
E02       |    LISA        |    HR      |    45000     |    35
E03       |    MARTIN      |    HR      |    20000     |    25
E04       |    DAVID       |    SALES   |    55000     |    40
E05       |    MARK        |    SALES   |    60000     |    45
E06       |    JOE         |    SALES   |    40000     |    25
E07       |    BELLA       |    HR      |    60000     |    24

If MultiWindowAnalytics node is configured as below:

ANALYTICSCOLUMN    |    WINDOW FUNCTION    |    PARTITIONBY    |    ORDERBY    |    OUTPUTCOLUMN
-----------------------------------------------------------------------------------------------------------
SALARY             |    first_value        |    DEPT           |    AGE        |    SALARY_OF_YOUNGEST
AGE                |    lag                |    DEPT           |    SALARY     |    AGE_OF_PREVRANKSALARY

then outgoing Dataframe would be created as below

where incoming Dataframe is partitioned by [DEPT] and data is sorted by [AGE] and [FIRST VALUE] of Analytics Column [SALARY]

within a partition is appended as new column [SALARY_OF_YOUNGEST]

for second Analytics Column, incoming Dataframe is partitioned by [DEPT] and data is sorted by [SALARY] and [AGE_OF_PREVRANKSALARY] is populated with the

Analytics Column [AGE] of row which is just 1 rank above the current row in the order of [SALARY]:

EMP_CD    |    EMP_NAME    |    DEPT    |    SALARY    |    AGE    |    SALARY_OF_YOUNGEST    |    AGE_OF_PREVRANKSALARY
------------------------------------------------------------------------------------------------------------------------------
E03       |    MARTIN      |    HR      |    20000     |    25     |    60000                 |
E02       |    LISA        |    HR      |    45000     |    35     |    60000                 |    25
E01       |    ANTHONY     |    HR      |    50000     |    40     |    60000                 |    35
E07       |    BELLA       |    HR      |    60000     |    24     |    60000                 |    40
E06       |    JOE         |    SALES   |    40000     |    25     |    40000                 |
E04       |    DAVID       |    SALES   |    55000     |    40     |    40000                 |    25
E05       |    MARK        |    SALES   |    60000     |    45     |    40000                 |    40