【问题标题】:How to parse data in Hive by character &如何按字符 & 解析 Hive 中的数据
【发布时间】:2015-08-05 17:16:03
【问题描述】:

数据如下:

fsid=4778&awid=5&url=http%3a%2f%2fwww.abcd.com%2f2-03&pfhid=-356847895&event=Login&Incorrect=False
fsid=3478&awid=5&url=http%3a%2f%2fwww.abcd.com%2f2-03&pfhid=-356847895&event=Login&userid=10598&Incorrect=False

我想看看我总共有多少个fsid,总共有多少个userid,很多记录都缺少userid。 我正在使用 Hive,也许这不是最好的方法,如果这是一个平面文本文件,我知道如何在 python 中执行此操作。 谢谢你。

【问题讨论】:

  • 你尝试过正则表达式吗?
  • @Naveen 你的意思是使用python?我不知道如何以分布式方式使用它。现在我正在考虑使用python遍历所有文件。但这不是最好的方法。

标签: hadoop amazon-web-services mapreduce hive


【解决方案1】:

使用正则表达式。

Select sum(case when fsid   is not null then 1 else 0 end) as count_fsid
    ,  sum(case when userid is not null then 1 else 0 end) as count_userid
    from
        (Select regexp_extract(my_string, '.*fsid=(//d*)&.*')   as fsid
              , regexp_extract(my_string, '.*userid=(//d*)&.*') as userid
        from my table
        ) a ;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    相关资源
    最近更新 更多