当我在 Pig 交互式 shell 环境中输入一些错误命令时,它会进入监听模式 (>>),如下所示。我如何安全地退出此命令,但仍留在 pig shell 环境中?
Ctrl+C把我带出猪壳,直到那时我失去了我的环境设置。
**grunt> Test_group = group Block2_Prep_filter by (page_visit_id as grp_page_visit_id, page_user_guid as grp_page_user_guid);
>> ;
>>
>>**
当我在 Pig 交互式 shell 环境中输入一些错误命令时,它会进入监听模式 (>>),如下所示。我如何安全地退出此命令,但仍留在 pig shell 环境中?
Ctrl+C把我带出猪壳,直到那时我失去了我的环境设置。
**grunt> Test_group = group Block2_Prep_filter by (page_visit_id as grp_page_visit_id, page_user_guid as grp_page_user_guid);
>> ;
>>
>>**
我查看了猪源代码。这称为secondary_prompt(在PigScriptParser.jj 中找到,JavaCC 的上下文无关解析器语法文件)。在我看来,它似乎无法摆脱。我尝试了很多我在该代码中看到的东西的组合,但没有任何效果。还尝试了我能想到的所有退出类型的词,但无济于事。
当我做Ctrl+D时,它退出并显示:
>> 2013-06-19 12:51:43,632 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1000:
Error during parsing. Lexical error at line 83, column 0. Encountered: <EOF> after : ""
查看 Grunt 类,在这一点上,它确实:
parser.setInteractive(false);
return parser.parseStopOnError();
这向我表明,交互性在这一点上已经结束。