【问题标题】:size of array with conditional argument in hive蜂巢中带有条件参数的数组的大小
【发布时间】:2015-10-08 18:24:22
【问题描述】:

我有一个数据集,其中有一列带有一组时间戳,一列只有一个时间戳。我正在寻找使用 c1 时间戳作为更大和更小的条件来获取数组的大小。

表(my_table):

c1 |           c2           |
----------------------------|
4  | [1,2,3,4,5,6,7,8,9,10] |
1  | [1,2,3,4,5,6,7,8,9,10] |
5  | [1,2,3,4,5,6,7,8,9,10] |
3  | [1,2,3,4,5,6,7,8,9,10] |

查询:

select
c1,
c2,
size(some_udf_split_on_c1(sort_array(<array>), c1)[1]) AS smaller_than_c1
size(some_udf_split_on_c1(sort_array(<array>), c1)[2]) AS larger_than_c1

from my_table

那里的udf是我假设的实现。

输出:

c1 |           c2           | smaller_than_c1 | larger_than_c1
----------------------------|-----------------|---------------
4  | [1,2,3,4,5,6,7,8,9,10] |        3        |      6
1  | [1,2,3,4,5,6,7,8,9,10] |        0        |      9
5  | [1,2,3,4,5,6,7,8,9,10] |        4        |      5
3  | [1,2,3,4,5,6,7,8,9,10] |        1        |      8       

【问题讨论】:

  • 你的代码在哪里??
  • 我没有该功能的代码,我正在寻求帮助。你真的需要我写简单的选择语句吗?
  • 我以一种非常传统的堆栈溢出方式询问如何完成该任务。如果它需要一个自定义的 udf,那么所有人所要做的就是说“这将需要编写一个自定义的 udf”。如果存在可以完成任务的现有 udf,只需将我指向这些 udf 会有所帮助。通过共享某个主题的信息和专业知识来帮助他人不是堆栈溢出。 @GoBrewers14 不确定您如何建设性地做出贡献,至少 GaneshThiagarajan 要求提供一些帮助改进帖子的内容。

标签: java arrays hadoop hive udf


【解决方案1】:

UDF 将是您寻找的最快途径。结合 explode 和 group bys 可能可以做到这一点,但与 10 行 UDF 代码相比,编写 UDF 会更快乐。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 2015-06-17
    相关资源
    最近更新 更多