Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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 3.x 将PCollection与apache_beam合并_Python 3.x_Google Cloud Dataflow_Apache Beam - Fatal编程技术网

Python 3.x 将PCollection与apache_beam合并

Python 3.x 将PCollection与apache_beam合并,python-3.x,google-cloud-dataflow,apache-beam,Python 3.x,Google Cloud Dataflow,Apache Beam,我正在尝试使用apache_beam运行一个管道(最后将进入数据流) 管道应如下所示: 我格式化PubSub中的数据,将原始结果写入Firestore,运行ML模型,在获得ML模型的结果后,我想用第一次写入FS时获得的ID更新Firestore 管道代码通常如下所示: 梁管道(选项=选项)为p: #读取和格式化 格式化的\u msgs=( P |“从PubSub读取”>>LoadPubSubData(已知参数主题) ) #将原始结果写入firestore 写入结果=( 格式化的 |“写入FS”

我正在尝试使用apache_beam运行一个管道(最后将进入数据流)

管道应如下所示:

我格式化PubSub中的数据,将原始结果写入Firestore,运行ML模型,在获得ML模型的结果后,我想用第一次写入FS时获得的ID更新Firestore

管道代码通常如下所示:

梁管道(选项=选项)为p:
#读取和格式化
格式化的\u msgs=(
P
|“从PubSub读取”>>LoadPubSubData(已知参数主题)
)
#将原始结果写入firestore
写入结果=(
格式化的
|“写入FS”>>beam.ParDo(WriteToFS())
|“Key FS”>>beam.Map(lambda FS:(FS[“record_uuid”],FS))
)
#运行ML模型
ml_结果=(
格式化的
|“ML”>>ML()
|“Key ML”>>beam.Map(lambda行:(行[“record_uuid”],行))
)
#按键合并并更新-问题出在这里
(
(write_results,ml_results)#我希望在这一点上通过键合并来自这两者的数据
|“group”>>beam.CoGroupByKey()
|“log”>>beam.ParDo(LogFn())
)
我试过很多方法,但似乎找不到正确的方法。有什么想法吗

---更新1--


问题是在日志行上我什么都没有得到。有时,我甚至会在操作中超时。
可能需要注意的是,我一开始是从PubSub流式传输数据

好吧,我终于明白了。我想我唯一缺少的就是窗口,因为我正在流式传输数据

因此,我添加了以下内容:

梁管道(选项=选项)为p:
#读取和格式化
格式化的\u msgs=(
P
|“从PubSub读取”>>LoadPubSubData(已知参数主题)
|“开窗”>>beam.WindowInto(窗口固定窗口(30))
)

问题出在哪里?您是否得到了错误的结果、错误或其他信息?在本例中,CoGroupByKey以字典的形式返回值,该字典由输入的索引键入。这里有一些例子:问题是在日志行上我什么都没有得到。。有时我甚至会在操作中超时。需要注意的是,我正在流式传输数据。您的原始代码应该会导致错误,至少在Beam Java上是这样。我已经开门了