我们能否以人类可读的格式从作业conf.xml中提取地图计划?使用的编码是什么?
例如,在其中一个conf文件中,我看到如下行(由于字符约束而被截断)。
<property>
<name>
pig.mapPlan
</name>
<value>
kmonaaafhdhcaaeogphcghcogbhagbgdgigfcohagjghcogc
</value>
</property>
[编辑]:这是针对一些后期执行分析,因此使用EXPLAIN获取计划没有多大帮助。
答案 0 :(得分:1)
pig.mapPlan
存储作业的实际计划。它被序列化为Base64字符串。
要获取PhysicalPlan对象,您可以执行以下操作:
import org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhysicalPlan;
import org.apache.pig.impl.util.ObjectSerializer;
...
String pigMapPlan = "kmonaaafhdhcaaeogphcghcogbhagbgdgigfcohagjghcogc...";
PhysicalPlan plan = (PhysicalPlan) ObjectSerializer.deserialize(pigMapPlan);
...
System.out.println(plan); //does an explain on the plan
答案 1 :(得分:-1)
使用EXPLAIN
命令。这将为您提供有关给定别名的map-reduce计划的详细信息。