apache-pig - 在函数的返回值上使用 Pig 的 ORDER BY

标签 apache-pig

我尝试使用 Pig 对日期字符串列 date_time_stamp 进行排序,但是当函数对列/字段进行操作时,它似乎无法排序。

C = ORDER B BY ToDate(date_time_stamp, 'dd-MMM-yy hh.mm.ss.SSSSSS a') ASC;

这是一个示例数据:

19-JUN-15 04.45.00.000000 PM,6
20-JUN-15 11.15.00.000000 AM,5
19-JUN-15 07.15.00.000000 AM,17
21-JUN-15 12.00.00.000000 AM,0
20-JUN-15 12.35.00.000000 PM,33

如何对函数操作的列进行排序?

最佳答案

根据文档:http://pig.apache.org/docs/r0.12.0/basic.html#order-by

  1. 执行 ORDER BY 的 field_alias 应出现在关系/别名中。

  2. Pig 目前支持对具有简单类型的字段或通过元组指示符 (*) 进行排序。您不能对具有复杂类型或表达式的字段进行排序。

在共享的用例中,在对别名 B 执行 ORDER BY 之前,我们必须将 ToDate() 的值投影为 field_alias,然后我们可以对此字段执行 order by。

关于apache-pig - 在函数的返回值上使用 Pig 的 ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32196173/

相关文章:

apache-pig - 我有 50 个字段,pig 中有没有选项可以打印 Apache Pig 中的前 40 个字段?我需要类似 $0-$39 范围的东西

hadoop - 作业无法从一个 ORC 文件读取并将一个子集写入另一个文件

hadoop - Pig Latin在一个FILTER语句中使用两个数据源

json - 如何在 Pig 中加入 2 个不同的变量?

apache-pig - Apache Pig - 如何从 CSV 文件读取数据

hadoop - 从哪里获取大数据管道的示例数据和查询?

java - 无法在 Ubuntu 中运行 Pig 嵌入式 Java 程序

hadoop - 将 pig 结果存储到本地文件

java - 在 Pig 中按名称获取字段?

hadoop - pig : how to efficiently LOAD and FILTER a large dataset?