private Operator genJoinPlan(QB qb, Map<String, Operator> map)
      throws SemanticException {
    QBJoinTree joinTree = qb.getQbJoinTree();
    return genJoinOperator(qb, joinTree, map, null);
  }
Construct a selection operator for semijoin that filter out all fields
other than the group by keys.

@param fields
         list of fields need to be output
@param input
         input operator
@return the selection operator.
@throws SemanticException
ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java