diff --git a/src/java/org/apache/sqoop/mapreduce/MergeMapperBase.java b/src/java/org/apache/sqoop/mapreduce/MergeMapperBase.java index 4657e0a0..216fcd05 100644 --- a/src/java/org/apache/sqoop/mapreduce/MergeMapperBase.java +++ b/src/java/org/apache/sqoop/mapreduce/MergeMapperBase.java @@ -74,7 +74,18 @@ protected void processRecord(SqoopRecord r, Context c) if (null == fieldMap) { throw new IOException("No field map in record " + r); } - Object keyObj = fieldMap.get(keyColName); + Object keyObj = null; + if (keyColName.contains(",")) { + String connectStr = new String(new byte[]{1}); + StringBuilder keyFieldsSb = new StringBuilder(); + for (String str : keyColName.split(",")) { + keyFieldsSb.append(connectStr).append(fieldMap.get(str).toString()); + } + keyObj = keyFieldsSb; + } else { + keyObj = fieldMap.get(keyColName); + } + if (null == keyObj) { throw new IOException("Cannot join values on null key. " + "Did you specify a key column that exists?");