<!--[if !supportLists]-->1.1 <!--[endif]-->describe
描述:输出关系的结构
语法:describe alais
<!--[if !supportLists]-->1.2 <!--[endif]-->dump
描述:输出关系数据
语法:dump alais
<!--[if !supportLists]-->1.3 <!--[endif]-->explain
描述:使用explain可以输出脚本的计划
语法:EXPLAIN [–script pigscript] [–out path] [–brief] [–dot]
[–param param_name = param_value] [–param_file file_name] alias;
序号 | 脚本代码 | 功能描述 |
1 | script | 运行的脚本 |
2 | out | 计划输出的路径 |
3 | brief | 标示不输出脚本嵌套的内部计划 |
4 | dot | 标示是否图形化输出 |
5 | param param_name = param_value | 设定脚本中的变量 $data |
6 | param_file file_name | 设定脚本中的文件变量 |
7 | Alias | 关系名 |
Explain的调试结果:
<!--[if !supportLists]-->1.4 <!--[endif]-->illustrate
描述:使用illustrate可以深入脚本,查看pig脚本是如何运行的
语法:ILLUSTRATE {alias | -script scriptfile};
序号 | 脚本代码 | 功能描述 |
1 | Alias | 关系名 |
2 | Script | 运行脚本名称,其中不能包括脚本illustrate |
使用illustrate可以缩短debug周期,进行小数据测试,提高测试效率
Illustrate的调试结果
<!--[if !supportLists]-->1.5 <!--[endif]-->debugger功能实现
利用日志捕获功能,结合illustrate命令实现少量数据的预处理,这样一旦出现错误,就利用pigLogger捕获日志,并显现在页面。
此种debugger存在一个问题,就是:少量数据可能debugger正确,但是当大量数据的时候仍然会出现某些难以预知的错误。