io.wizzie.normalizer.funcs.impl.MapFlattenMapper Maven / Gradle / Ivy
package io.wizzie.normalizer.funcs.impl;
import io.wizzie.metrics.MetricsManager;
import io.wizzie.normalizer.funcs.MapperFunction;
import org.apache.kafka.streams.KeyValue;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class MapFlattenMapper extends MapperFunction {
String flatDimension;
String keyDimension;
String outputDimension;
@Override
public void prepare(Map properties, MetricsManager metricsManager) {
flatDimension = (String) properties.get("flat_dimension");
keyDimension = (String) properties.get("key_dimension");
outputDimension = (String) properties.get("output_dimension");
}
@Override
public KeyValue> process(String key, Map value) {
// DATA: {"A":{"dim":"AA"}, "C":{"dim":"BB"}}
// OUT: [{key:A, dim: AAA},{key:C, dim: BB}]
if (value != null && flatDimension != null) {
Map newValue = new HashMap<>(value);
if (value.containsKey(flatDimension)) {
Map> map = (Map>) newValue.remove(flatDimension);
if (map != null) {
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy