Parameters Store命令中的Pig拉丁参数

Parameters Store命令中的Pig拉丁参数,parameters,apache-pig,latin,Parameters,Apache Pig,Latin,我开发了一个接受参数$color的Pig拉丁语 我已加载到我的数据集中,并根据此参数成功筛选了它 现在我正在尝试存储输出,我正在尝试将参数用作store命令中的文件夹,如下所示: STORE Final_Relation INTO '/output/colour/'$colour'' USING PigStorage(); 这给了我以下错误: 错误1200:不匹配的输入“蓝色”应为分号 我要补充的一点是,这里的颜色有一个连字符,例如蓝灰色。。。虽然第一种颜色采用了相同的颜色,例如红橙色,但我不

我开发了一个接受参数$color的Pig拉丁语

我已加载到我的数据集中,并根据此参数成功筛选了它

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

STORE Final_Relation INTO '/output/colour/'$colour'' USING PigStorage();
这给了我以下错误:

错误1200:不匹配的输入“蓝色”应为分号

我要补充的一点是,这里的颜色有一个连字符,例如蓝灰色。。。虽然第一种颜色采用了相同的颜色,例如红橙色,但我不确定这是否相关(我只是觉得奇怪,错误消息只包含字符串“蓝色”的第一部分,而不是完整的字符串“蓝灰色”)

作为一种替代方法,我认为使用以下命令将所有内容存储在Color文件夹中也可以:

STORE Final_Relation INTO '/output/colour' USING PigStorage();
但是当我这样做,并且第二次运行我的脚本时(即,第一次它工作正常),我得到了错误:

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

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

  • 我无法使用参数动态创建子文件夹
  • 我无法将所有输出放在同一个文件夹中
  • 我的真实数据有数千种颜色,因此手动创建文件夹是不切实际的

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

      “/output/color/$color”

      我错误地在参数周围加了引号


      另外,我不知道如何将注释升级为答案,否则我会这样做。

      我认为您应该尝试在STORE命令中使用“/output/color/$color”。不确定这是否有效,但也可以不在参数中包含“/output/color/”?然后在脚本中使用
      将final\u rel保存到“$output”