in zeppelin-web/src/app/tabledata/advanced-transformation-util.js [507:634]
export function getTransformer(conf, rows, axisSpecs, axis) {
let transformer = () => {};
const transformSpec = getCurrentChartTransform(conf);
if (!transformSpec) {
return transformer;
}
const method = transformSpec.method;
const columns = getColumnsFromAxis(axisSpecs, axis);
const keyColumns = columns.key;
const groupColumns = columns.group;
const aggregatorColumns = columns.aggregator;
const customColumns = columns.custom;
let column = {
key: keyColumns, group: groupColumns, aggregator: aggregatorColumns, custom: customColumns,
};
if (method === TransformMethod.RAW) {
transformer = () => {
return rows;
};
} else if (method === TransformMethod.OBJECT) {
transformer = () => {
const {cube, schema, keyColumnName, keyNames, groupNameSet, selectorNameWithIndex} =
getKGACube(rows, keyColumns, groupColumns, aggregatorColumns);
const {
transformed, groupNames, sortedSelectors,
} = getObjectRowsFromKGACube(cube, schema, aggregatorColumns,
keyColumnName, keyNames, groupNameSet, selectorNameWithIndex);
return {
rows: transformed,
keyColumnName,
keyNames,
groupNames: groupNames,
selectors: sortedSelectors,
};
};
} else if (method === TransformMethod.ARRAY) {
transformer = () => {
const {cube, schema, keyColumnName, keyNames, groupNameSet, selectorNameWithIndex} =
getKGACube(rows, keyColumns, groupColumns, aggregatorColumns);
const {
transformed, groupNames, sortedSelectors,
} = getArrayRowsFromKGACube(cube, schema, aggregatorColumns,
keyColumnName, keyNames, groupNameSet, selectorNameWithIndex);
return {
rows: transformed,
keyColumnName,
keyNames,
groupNames: groupNames,
selectors: sortedSelectors,
};
};
} else if (method === TransformMethod.ARRAY_2_KEY) {
const keyAxisColumn = getColumnsForMultipleAxes(AxisType.KEY, axisSpecs, axis);
column.key = keyAxisColumn;
let key1Columns = [];
let key2Columns = [];
// since ARRAY_2_KEY :)
let i = 0;
for (let axisName in keyAxisColumn) {
if (i === 2) {
break;
}
if (i === 0) {
key1Columns = keyAxisColumn[axisName];
} else if (i === 1) {
key2Columns = keyAxisColumn[axisName];
}
i++;
}
const {cube, schema,
key1ColumnName, key1Names, key2ColumnName, key2Names,
groupNameSet, selectorNameWithIndex,
} = getKKGACube(rows, key1Columns, key2Columns, groupColumns, aggregatorColumns);
const {
transformed, groupNames, sortedSelectors,
key1NameWithIndex, key2NameWithIndex,
} = getArrayRowsFromKKGACube(cube, schema, aggregatorColumns,
key1Names, key2Names, groupNameSet, selectorNameWithIndex);
transformer = () => {
return {
rows: transformed,
key1Names: key1Names,
key1ColumnName: key1ColumnName,
key1NameWithIndex: key1NameWithIndex,
key2Names: key2Names,
key2ColumnName: key2ColumnName,
key2NameWithIndex: key2NameWithIndex,
groupNames: groupNames,
selectors: sortedSelectors,
};
};
} else if (method === TransformMethod.DRILL_DOWN) {
transformer = () => {
const {cube, schema, keyColumnName, keyNames, groupNameSet, selectorNameWithIndex} =
getKAGCube(rows, keyColumns, groupColumns, aggregatorColumns);
const {
transformed, groupNames, sortedSelectors,
} = getDrilldownRowsFromKAGCube(cube, schema, aggregatorColumns,
keyColumnName, keyNames, groupNameSet, selectorNameWithIndex);
return {
rows: transformed,
keyColumnName,
keyNames,
groupNames: groupNames,
selectors: sortedSelectors,
};
};
}
return {transformer: transformer, column: column};
}