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