Merge join results depends on the underlying sorter used by the mapper task as we need to judge the direction after each key comparison. So the comparison done during join has to match the way the records are sorted by the mapper. As per the sorter used by mapper task (PipelinedSorter), hash-maps with same key-value pair in different order are not equal. So the merge join also behaves the same way. But map join treats them as equal. We have to modify the pipelined sorter code to handle the map datatype. Then support has to be added in the Join code to support map types.