sorted = order data by $0; 数值类型按照数值大小比较 chararray类型按照字符的字典顺序比较 bytearray按照字节的字典顺序比较 复杂类型(map.tuple.bag)不能比较 null是最小的 触发reduce阶段 sorted = order data by $0; sorted = order data by $0 desc, $1 asc; order by是全局排序,有reduce阶段,有可能产生数据倾斜,为解决这个问题,Pig在shuff…
row_number() over (partition by....order by...)用法 分组排序 row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的) SQL> SELECT G.*, ROW_NUMBER() OVER(PARTITION BY a ,b ORDER BY c DESC) ROWN 2 fro…
sql的游标用法举例 ), ) Declare authors_cursor Cursor For Select Name,TrueName From Account Open authors_cursor Fetch Next From authors_cursor INTO @Name, @TrueName Begin ),@@FETCH_STATUS) Fetch Next From authors_cursor INTO @Name, @TrueName End Close author…
lmt = limit data 10; 只获取指定条数的数据,不能保证每次得到的结果一致,先执行order再limit可以保证一致. 输入数据全部载入. 会触发reduce阶段 a = load 'a.txt'; b = group a all; c = foreach b generate COUNT(a) as sum; d = order a by $0; e = limit d c.sum/100; …
jnd = join a by f1, b by f2; join操作默认的是内连接,只有两边都匹配才会保留 需要用null补位的那边需要知道它的模式: 如果是左外连接,需要知道右边的数据集的模式,不匹配的字段用null补位 如果是右外连接,需要知道左边的数据集的模式,不匹配的字段用null补位 如果是全外连接,需要知道两边的数据集的模式,不匹配的字段用null补位 触发reduce阶段 基本用法 a = load 'input1'; b = load 'input2'; jnd…