package com.linkedin.thirdeye.hadoop.join; import java.util.Map; import org.apache.avro.generic.GenericRecord; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class DefaultJoinKeyExtractor implements JoinKeyExtractor { private static final Logger LOGGER = LoggerFactory.getLogger(DefaultJoinKeyExtractor.class); private Map<String, String> joinKeyMap; private String defaultJoinKey; public DefaultJoinKeyExtractor(Map<String, String> params) { this.joinKeyMap = params; this.defaultJoinKey = params.get("defaultJoinKey"); } @Override public String extractJoinKey(String sourceName, GenericRecord record) { String joinKey = defaultJoinKey; if (joinKeyMap != null && joinKeyMap.containsKey(sourceName)) { joinKey = joinKeyMap.get(sourceName); } String ret = "INVALID"; if (joinKey != null) { Object object = record.get(joinKey); if (object != null) { ret = object.toString(); } } LOGGER.info("source:{} JoinKey:{} value:{}", sourceName, joinKey, ret); return ret; } }