【问题标题】:Apache Pig 0.8.1 double NaNApache Pig 0.8.1 双 NaN
【发布时间】:2014-01-08 16:10:07
【问题描述】:

我有一个自定义的猪存储输入机制,它将一堆汇总统计值(如偏度、峰度、中位数等)放入元组中。具体来说,这些数字被假定为双精度数,因此双精度数被放置在元组中。

问题是,当 Java 端的偏度/峰度为 NaN 时,它们似乎映射到 Pig 中的 NaN,即使我已经定义了元组模式,我也无法弄清楚如何使用它们将它们作为“双”数据类型。

NaN 的排序似乎高于最高的双精度数,因此按降序排序似乎将所有 NaN 放在首位。我已经尝试通过“偏度不为空”进行过滤,但这不起作用。

文档和谷歌并没有告诉我太多关于如何使用这些值的信息。我需要能够处理这些数字。

谢谢!

【问题讨论】:

    标签: hadoop double apache-pig nan


    【解决方案1】:

    NaN 是“非数字”的缩写。 “使用这些数字”体现了将它们视为数字的基本误解。它们无法与数字进行有意义的比较,因此它们没有正确的排序顺序。

    您应该过滤掉它们,或者找出它们的来源并修复它。可能导致 NaN 的事情是通过将总值除以元素数来计算空集的算术平均值。

    如果您没有可用的直接“isNaN”测试,您可以通过 NaN 不等于任何东西,甚至不等于自身的特殊属性来检测它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 2016-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      相关资源
      最近更新 更多