如何设置 Pig STORE 命令的输出目录?

Posted

技术标签:

【中文标题】如何设置 Pig STORE 命令的输出目录?【英文标题】:How can I set the output directory for a Pig STORE command? 【发布时间】:2014-05-15 07:36:21 【问题描述】:

我正在通过 Azure HDInsight 使用 Pig。我可以提交以 STORE 结尾的查询,如下所示:

STORE Ordered INTO 'results' USING PigStorage(',');

这可行,将输出存储在目录/user/hdp/results/ 中。但是我想控制输出目录。我都试过了...

STORE Ordered INTO '/myOutDir/results' USING PigStorage(',');

STORE Ordered INTO 'wasb:///myOutDir/results' USING PigStorage(',');

这些都不起作用。他们都产生了这个错误:

Ordered was unexpected at this time.

我的问题是,我可以控制 Store 命令的输出目录吗?还是必须放到用户目录下?

【问题讨论】:

【参考方案1】:

如果你想用参数设置输出,你可以这样做:

 STORE Ordered INTO '$myOutDir/results' USING...

然后运行你的脚本:

 pig -param myOutDir=/blablabla/... myScript.pig

注意:您还可以为参数设置默认值,在脚本顶部添加:

%default myOutDir '/blablabla/...'

希望对你有所帮助,祝你好运:)

【讨论】:

【参考方案2】:

使用如下输出路径

wasb[s]://<BlobStorageContainerName>@<StorageAccountName>.blob.core.windows.net/<path>

如果您的输出路径为/example/data/sample.log,则使用

wasb://mycontainer@mystorageaccount.blob.core.windows.net/example/data/sample.log
wasb:///example/data/sample.log

我希望这可以帮助你。 :-)

【讨论】:

以上是关于如何设置 Pig STORE 命令的输出目录?的主要内容,如果未能解决你的问题,请参考以下文章

Store 命令中的 Pig Latin 参数

在 Python 中绑定到 Pig STORE 或 DUMP 输出

未设置 Hadoop Pig 输出目录

将 pig fs 命令输出到文件或变量

Apache Pig,抑制“输出位置验证失败”“输出目录......已经存在”

可以使用 PIG 读取的文件格式