首页 > 解决方案 > Store 命令中的 Pig Latin 参数

问题描述

我开发了一个接受参数 $color 的 Pig Latin。

我已经加载了我的数据集,并根据这个参数成功地过滤了它。

现在我正在尝试存储输出,我正在尝试将参数用作 store 命令中的文件夹,如下所示:

STORE Final_Relation INTO '/output/colour/'$colour'' USING PigStorage();

这给了我以下错误:

错误 1200:<文件 TestScript,第 32 行,第 63 列> 输入“蓝色”不匹配,需要 SEMI_COLON

我要补充的一件事是,这里的颜色中有一个连字符,例如蓝灰色......虽然同样适用于第一种颜色,例如红橙色,所以我不确定这是否相关(我只是觉得奇怪,错误消息只包含字符串“blue”的第一部分,而不是完整的字符串“blue-grey”。

作为替代方案,我认为使用以下命令将所有内容存储在颜色文件夹中可能是可以的:

STORE Final_Relation INTO '/output/colour' USING PigStorage();

但是当我这样做时,我第二次运行我的脚本(即第一次运行良好),我得到了错误:

输出位置验证失败:'/output/colour 更多信息:
输出目录 hdfs://sandbox-hdp.XXXX.com:XXXX/output/colour 已经存在

这似乎让我陷入了尴尬的境地:

标签: parametersapache-piglatin

解决方案


@pauljcg 已经回答了这个问题,我的输出字符串的格式需要是:

'/输出/颜色/$颜色'

我错误地在参数周围放置了额外的引号。

附言。我不知道如何宣传对答案的评论,否则我会这样做。


推荐阅读