我在hive外部表的列中有如下所示的字符串
<id>^<count>^<distinct_count>|<id>^<count>^<distinct_count>|...
有两个分隔符。实体级|
和子实体级^
我有一个度量,它由非零distinct_counts
或counts
的计数总和定义,这意味着给定一个字符串我检查是否有不同的计数(或计数 - 我可以检查是否为非零,如果它将flag
标记为1.则度量标准为sum(flags)
。我必须在下一步中将此指标存储在聚合表中。
请为我提供一种在Hive中执行此操作的方法
答案 0 :(得分:0)
我认为这是不可能的。结束时使用外部python映射器。
答案 1 :(得分:0)
如果您想计算字符串count
中非零s
的数量,它似乎可以通过
length(
regexp_replace(
regexp_replace(s, "[^^|]*\\^0\\^[^^|]*\\|?", ""),
"[^^|]*\\^[^^|]*\\^[^^|]*\\|?",
"1"
)
)
首先regexp_replace
删除零count
的部分,第二个regexp_replace
用单个符号替换剩余部分(它不一定是"1"
,任何符号就足够了),以及因此length
会返回非零count
的部分数。