Pig排和一般Pig排的顺序保持

yhxst69z  于 2021-06-25  发布在  Pig
关注(0)|答案(1)|浏览(244)

在以下代码中:

dsBodyStartStopSort = 
order dsBodyStartStop 
   by terminal_id, point_date_stamp, point_time_stamp, event_code
;

dsBodyStartStopRank = 
rank dsBodyStartStopSort
;

store dsBodyStartStopSort
 into 'xStartStopSort.csv'
using PigStorage(';')
;

我知道如果我不在中间排序,排序顺序将进入store命令。这是Pig的保证。
从我所做的测试来看,排序并不会扰乱排序顺序——但这能保证吗?我不想只是靠运气。
更一般地说,Pig的规则是什么保存排序一旦它做了?直到某个事件发生?它能通过过滤器工作吗?当然不是团体?只是想知道是否有一套明确的规则,Pig何时和如何保证或不保证秩序。
总而言之:1)等级之间的顺序是否保持?2) 秩序一般是如何维持的?

xdyibdwo

xdyibdwo1#

我在这个主题上找到的最好的文档:
除非按照下面的说明显式应用嵌套的order by操作,否则行李将被打乱。嵌套的foreach将保持顺序,允许您按字段的一个组合排序,然后只投影出要连接的值。
通过观察非官方的例子和评论,我得出以下结论:
如果你在一个等级之前做了一个命令,它应该保持这个命令。就我个人而言,我更喜欢 RANK BY a,b,c; 只有在真正需要的时候才使用命令。
如果你在一个限制之前下订单,它应该用最上面的行输入限制。但是,输出将被排序,而不是按原始顺序。

相关问题