如何按字符解析Hive中的数据&

How to parse data in Hive by character &

数据如下所示:

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 中执行此操作。 谢谢你。

使用正则表达式。

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 ;