一个猪脚本中的两个存储功能
Posted
技术标签:
【中文标题】一个猪脚本中的两个存储功能【英文标题】:two store function in one pig script 【发布时间】:2014-02-21 11:42:47 【问题描述】:我有一个猪脚本来加载、处理和存储数据。
如果同一个猪脚本中有两个存储函数,它是如何工作的?
a = load 'somefile' using PigStorage(',');
b ...
c ...
d ...
e = store d into 'output1';
f = store c into 'output2';
这是否对每个商店运行两次。那是 store 'e' 它从 'a' 处理到 'e' 而对于 store 'f' 它直接存储 'c'因为它已经被处理或者它将再次从'a'开始?
【问题讨论】:
【参考方案1】:一般来说,底层 map/reduce 框架具有多输出格式,因此 Pig 可以使用该格式并在单个作业中运行两个存储脚本,例如通过单独的reduce,每个reduce都会写入另一个文件
然而,实际的 map/reduce 计划取决于您为获得 c 和 d 所做的工作 - 有时该处理需要不止一个工作 - 要了解脚本的行为方式,您可以使用 Pig 的 explain 命令。如果您想要图形可视化,可以使用Netflix's lipstick
【讨论】:
感谢这帮助我理解了这个概念。我在这里遇到的另一个疑问是,如果它需要不止一项工作,它是否会为每个商店加载两次,我的意思是说它是否为每个商店“e”和“f”加载两次“somefile” 这真的取决于你在做什么。通常 Pig 足够聪明,如果可以的话,不会加载两次。正如我所说,如果这对您很重要,您应该在让它运行之前先查看计划 非常感谢它帮助了我。你能在这个***.com/questions/21698582/… 上给我建议吗?如果我不应该在这里问这个但我需要帮助,我很抱歉。以上是关于一个猪脚本中的两个存储功能的主要内容,如果未能解决你的问题,请参考以下文章