private void collectLeafTrans(SparkTran leaf, List<SparkTran> reduceTrans) { List<SparkTran> parents = getParents(leaf); if (parents.size() > 0) { SparkTran nextLeaf = null; for (SparkTran leafTran : parents) { if (leafTran instanceof ReduceTran) { reduceTrans.add(leafTran); } else { if (getParents(leafTran).size() > 0) nextLeaf = leafTran; } } if (nextLeaf != null) collectLeafTrans(nextLeaf, reduceTrans); } }
private void logSparkPlan() { addNumberToTrans(); ArrayList<SparkTran> leafTran = new ArrayList<SparkTran>(); leafTran.addAll(leafTrans); for (SparkTran leaf : leafTrans) { collectLeafTrans(leaf, leafTran); } // Start Traverse from the leafTrans and get parents of each leafTrans till // the end StringBuilder sparkPlan = new StringBuilder( "\n\t!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Spark Plan !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! \n\n"); for (SparkTran leaf : leafTran) { sparkPlan.append(leaf.getName()); getSparkPlan(leaf, sparkPlan); sparkPlan.append("\n"); } sparkPlan .append(" \n\t!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Spark Plan !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "); LOG.info(sparkPlan.toString()); }