Interface AttributeColumnsMergeStrategiesController
-
public interface AttributeColumnsMergeStrategiesController
This interface defines part of the Data Laboratory API basic actions. It contains methods for applying different basic attribute columns merge strategies.- Author:
- Eduardo Ramos
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
AttributeColumnsMergeStrategiesController.BooleanOperations
Enumeration that defines the supported logic operations for a merge withbooleanLogicOperationsMerge
strategy.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Column
averageNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the average of all not null values and puts the result of each row in a new column ofBIGDECIMAL
AttributeType
.Column
booleanLogicOperationsMerge(Table table, Column[] columnsToMerge, AttributeColumnsMergeStrategiesController.BooleanOperations[] booleanOperations, String newColumnTitle)
Strategy to apply only to all boolean columns.Column
firstQuartileNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the first quartile (Q1) of all not null values and puts the result of each row in a new column ofBIGDECIMAL
AttributeType
.Column
interQuartileRangeNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the interquartile range (IQR) of all not null values and puts the result of each row in a new column ofBIGDECIMAL
AttributeType
.Column
joinWithSeparatorMerge(Table table, Column[] columnsToMerge, Class newColumnType, String newColumnTitle, String separator)
Joins various columns of any type into a new column using the given separator string (or null).Column
maxValueNumbersMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the maximum value of all not null values and puts the result of each row in a new column ofBIGDECIMAL
AttributeType
.Column
medianNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the median of all not null values and puts the result of each row in a new column ofBIGDECIMAL
AttributeType
.Column
mergeDateColumnsToTimeInterval(Table table, Column startColumn, Column endColumn, SimpleDateFormat dateFormat, String defaultStartDate, String defaultEndDate)
Merge 1 or 2 columns creating a time interval for each row.Column
mergeNumericColumnsToTimeInterval(Table table, Column startColumn, Column endColumn, double defaultStart, double defaultEnd)
Merge 1 or 2 columns creating a time interval for each row.Column
minValueNumbersMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the minimum value of all not null values and puts the result of each row in a new column ofBIGDECIMAL
AttributeType
.Column
sumNumbersMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the sum of all not null values and puts the result of each row in a new column ofBIGDECIMAL
AttributeType
.Column
thirdQuartileNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the third quartile (Q3) of all not null values and puts the result of each row in a new column ofBIGDECIMAL
AttributeType
.
-
-
-
Method Detail
-
joinWithSeparatorMerge
Column joinWithSeparatorMerge(Table table, Column[] columnsToMerge, Class newColumnType, String newColumnTitle, String separator)
Joins various columns of any type into a new column using the given separator string (or null).
If the specified column type is null, the new created column will have
STRING
AttributeType
by default.- Parameters:
table
- Table of the columns to mergecolumnsToMerge
- Columns to mergenewColumnType
- Type for the new column. If null,STRING
will be used by defaultnewColumnTitle
- Title for the new columnseparator
- Separator to put between each value- Returns:
- The new created column
-
mergeNumericColumnsToTimeInterval
Column mergeNumericColumnsToTimeInterval(Table table, Column startColumn, Column endColumn, double defaultStart, double defaultEnd)
Merge 1 or 2 columns creating a time interval for each row. Values of the columns will be expected as numbers
Only one of the 2 column could be null, and its corresponding start/end default will be used.
Columns can be of any type. If not numeric, their values will be parsed.
Default start and end values will be used when the columns don't have a value or it can't be parsed to a double.
When start > end for any reason:- If both columns were provided: A infinite time interval will be set
- If only one column was provided: The value for the provided column will be kept and the other will be infinite
- Parameters:
table
- Table of the columns, can't be null or wrongstartColumn
- Column to use as start valueendColumn
- Column to use as end valuedefaultStart
- Default start valuedefaultEnd
- Default end value- Returns:
- Time interval column
-
mergeDateColumnsToTimeInterval
Column mergeDateColumnsToTimeInterval(Table table, Column startColumn, Column endColumn, SimpleDateFormat dateFormat, String defaultStartDate, String defaultEndDate)
Merge 1 or 2 columns creating a time interval for each row. Values of the columns will be expected as dates in the given date format
Only one of the 2 column could be null, and its corresponding start/end default will be used.
Columns can be of any type.
Default start and end values will be used when the columns don't have a value or it can't be parsed to a date. If a default value can't be parsed to a date, infinity will be used as default instead.
When start > end for any reason:- If both columns were provided: A infinite time interval will be set
- If only one column was provided: The value for the provided column will be kept and the other will be infinite
- Parameters:
table
- Table of the columns, can't be null or wrongstartColumn
- Column to use as start valueendColumn
- Column to use as end valuedateFormat
- Format for the dates, can't be nulldefaultStartDate
- Default date to use as start if it can be parseddefaultEndDate
- Default date to use as end if it can be parsed- Returns:
- Time interval column
-
booleanLogicOperationsMerge
Column booleanLogicOperationsMerge(Table table, Column[] columnsToMerge, AttributeColumnsMergeStrategiesController.BooleanOperations[] booleanOperations, String newColumnTitle)
Strategy to apply only to all boolean columns. Merges various columns into a new boolean column allowing to define each operation to apply between each pair of columns to merge.
The length of the operations array must be the length of the columns array-1, or IllegalArgumentException will be thrown.
- Parameters:
table
- Table of the columns to mergecolumnsToMerge
- Boolean columns to mergebooleanOperations
- Boolean operations to applynewColumnTitle
- Title for the new column- Returns:
- The new created column
-
averageNumberMerge
Column averageNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the average of all not null values and puts the result of each row in a new column of
BIGDECIMAL
AttributeType
.- Parameters:
table
- Table of the columns to mergecolumnsToMerge
- Number or number list columnsnewColumnTitle
- Title for the new column- Returns:
- The new created column
-
firstQuartileNumberMerge
Column firstQuartileNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the first quartile (Q1) of all not null values and puts the result of each row in a new column of
BIGDECIMAL
AttributeType
.- Parameters:
table
- Table of the columns to mergecolumnsToMerge
- Number or number list columnsnewColumnTitle
- Title for the new column- Returns:
- The new created column
-
medianNumberMerge
Column medianNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the median of all not null values and puts the result of each row in a new column of
BIGDECIMAL
AttributeType
.- Parameters:
table
- Table of the columns to mergecolumnsToMerge
- Number or number list columnsnewColumnTitle
- Title for the new column- Returns:
- The new created column
-
thirdQuartileNumberMerge
Column thirdQuartileNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the third quartile (Q3) of all not null values and puts the result of each row in a new column of
BIGDECIMAL
AttributeType
.- Parameters:
table
- Table of the columns to mergecolumnsToMerge
- Number or number list columnsnewColumnTitle
- Title for the new column- Returns:
- The new created column
-
interQuartileRangeNumberMerge
Column interQuartileRangeNumberMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the interquartile range (IQR) of all not null values and puts the result of each row in a new column of
BIGDECIMAL
AttributeType
.- Parameters:
table
- Table of the columns to mergecolumnsToMerge
- Number or number list columnsnewColumnTitle
- Title for the new column- Returns:
- The new created column
-
sumNumbersMerge
Column sumNumbersMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the sum of all not null values and puts the result of each row in a new column of
BIGDECIMAL
AttributeType
.- Parameters:
table
- Table of the columns to mergecolumnsToMerge
- Number or number list columnsnewColumnTitle
- Title for the new column- Returns:
- The new created column
-
minValueNumbersMerge
Column minValueNumbersMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the minimum value of all not null values and puts the result of each row in a new column ofBIGDECIMAL
AttributeType
.- Parameters:
table
- Table of the columns to mergecolumnsToMerge
- Number or number list columnsnewColumnTitle
- Title for the new column- Returns:
- The new created column
-
maxValueNumbersMerge
Column maxValueNumbersMerge(Table table, Column[] columnsToMerge, String newColumnTitle)
Merges any combination of number or number list columns, calculating the maximum value of all not null values and puts the result of each row in a new column of
BIGDECIMAL
AttributeType
.- Parameters:
table
- Table of the columns to mergecolumnsToMerge
- Number or number list columnsnewColumnTitle
- Title for the new column- Returns:
- The new created column
-
-