0

根据IBM 文档 - http://publib.boulder.ibm.com/infocenter/bigins/v1r1/index.jsp?topic=%2Fcom.ibm.swg.im.infosphere.biginsights.doc%2Fdoc%2Fc0057749.html Jaql 的顶级运算符的默认顺序是升序。但是当我运行它时,我看到默认顺序为降序。我正在使用 BigInsights 1.4 版。我想知道是否有人知道这是文档问题还是这种看似差异背后的其他原因-

jaql> nums = [2,1,3];

jaql> nums -> top 2;
[
  2,
  1
]
4

1 回答 1

0

Top 不对输入数组强加任何排序。它转换为 slice(array, 0, n); 函数调用。它需要前 n 个元素,除非您运行它 MR 模式,而您在本示例中没有这样做。Top 只是转换为 slice(),它不查看值。如果要强加确定性顺序,则必须附加一个比较器。

在这种情况下,由于示例使用了 [2,1,3],因此看起来好像是按降序排列的,但 Top 只返回了数组中的前两个值。您是否要求:

jaql> 数字 -> 前 3 名;

它会返回:[ 2, 1, 3 ]

于 2013-09-27T06:17:45.203 回答