Hadoop 如何基于同一文件中的输入分析事件

Hadoop 如何基于同一文件中的输入分析事件,hadoop,hive,Hadoop,Hive,上述信息在S3中某个bucket下的文件中可用(比如S3://hadoop.mycompany.com/bucket1/foo1.txt) 所有事件都有foo\u id。对于“event2”中的所有事件,我想知道这些foo\u id(s)在event1中发生了多少次 e、 g.在上述情况下 event1 foo_id1 event1 foo_id2 event1 foo_id4 event1 foo_id6 even

上述信息在S3中某个bucket下的文件中可用(比如
S3://hadoop.mycompany.com/bucket1/foo1.txt

所有事件都有
foo\u id
。对于“
event2
”中的所有事件,我想知道这些
foo\u id
(s)在
event1
中发生了多少次

e、 g.在上述情况下

event1           foo_id1
event1           foo_id2
event1           foo_id4
event1           foo_id6
event1           foo_id7
event1           foo_id8
event1           foo_id8
event1           foo_id1
event1           foo_id4

event2           foo_id1
event2           foo_id2
event2           foo_id3
event2           foo_id4
event2           foo_id5
event2           foo_id6
event2           foo_id8
event2           foo_id9
event2           foo_id11

如何编写配置单元脚本以按预期格式返回数据?

Hi这可以使用以下配置单元脚本完成:

  • 首先,需要使用此命令创建配置单元外部表

    创建外部表事件(事件字符串、foo字符串) 以“\t”结尾的行格式分隔字段 位置“s3n://hadoop.mycompany.com/bucket1/”

  • 运行以下查询

    选择e2.foo,计数(e1.foo) 从事件e2左外部连接事件e1在e1.foo=e2.foo和e1.event='event1' 其中e2.event='event2' e2.foo分组

  • 你应该得到你需要的结果,比如:

    foo_id1=2
    foo_id2=1
    foo_id3=0
    foo_id4=2
    foo_id5=0
    foo_id6=1
    foo_id8=2
    foo_id9=0
    foo_id11=0
    
    希望这能解决你的问题

    foo_id1  2
    foo_id11 0
    foo_id2  1
    foo_id3  0
    foo_id4  2
    foo_id5  0
    foo_id6  1
    foo_id8  2
    foo_id9  0