Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 提取会话时保留元素数据_Python_Google Cloud Dataflow_Apache Beam - Fatal编程技术网

Python 提取会话时保留元素数据

Python 提取会话时保留元素数据,python,google-cloud-dataflow,apache-beam,Python,Google Cloud Dataflow,Apache Beam,与此类似,我有以下测试数据 EDITS = [ json.dumps({'timestamp': 0, 'username': 'user1', 'action': 'a'}), json.dumps({'timestamp': 1, 'username': 'user1', 'action': 'b'}), json.dumps({'timestamp': 20, 'username': 'user1', 'action': 'a'}), jso

与此类似,我有以下测试数据

EDITS = [
      json.dumps({'timestamp': 0, 'username': 'user1', 'action': 'a'}),
      json.dumps({'timestamp': 1, 'username': 'user1', 'action': 'b'}),
      json.dumps({'timestamp': 20, 'username': 'user1', 'action': 'a'}),
      json.dumps({'timestamp': 132, 'username': 'user2', 'action': 'a'}),
      json.dumps({'timestamp': 500, 'username': 'user2', 'action': 'b'}),
      json.dumps({'timestamp': 3601, 'username': 'user2', 'action': 'b'}),
      json.dumps({'timestamp': 3602, 'username': 'user2', 'action': 'a'}),
      json.dumps({'timestamp': 8004, 'username': 'user2', 'action': 'a'}),
      json.dumps({'timestamp': 9320, 'username': 'user1', 'action': 'b'})
  ]
我想将数据集按
用户名
划分为会话,然后针对每个用户会话统计用户操作。因此,对于上一个数据集和一小时最大间隔(3600秒),我希望得到以下结果:

EXPECTED = [
      'user1 : [0.0, 3620.0), a: 2, b: 1',
      'user2 : [132.0, 7202.0), a: 2, b: 2',
      'user2 : [8004.0, 11604.0), a: 1, b: 0',
      'user1 : [9320.0, 12920.0), a: 0, b: 1',
  ]

与wikipedia会话示例相反,我需要保留完整的元素数据,而不仅仅是密钥,以便在自定义组合器函数中使用。

您应该能够编写一个
CombineFn
,使用计数字典作为累加器,对每种类型的操作数进行计数。然后,您可以在由用户ID和该组合器设置密钥的集合中使用会话窗口

有关如何编写光束编程的想法,请参阅上的光束编程指南部分