7

当我在 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);
>> ;
>>
>>**
4

1 回答 1

4

我查看了猪源代码。这称为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();

这向我表明,交互性在这一点上已经结束。

于 2013-06-19T17:02:49.807 回答