python – apache_beam.transforms.util.Reshuffle()不适用于GCP Dataflow

前端之家收集整理的这篇文章主要介绍了python – apache_beam.transforms.util.Reshuffle()不适用于GCP Dataflow前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我已经通过pip install升级到最新的apache_beam [gcp]包–upgrade apache_beam [gcp].但是,我注意到Reshuffle()没有出现在[gcp]发行版中.这是否意味着我将无法在任何数据流管道中使用Reshuffle()?有没有办法解决?或者pip包可能不是最新的,如果Reshuffle()在github上是master,那么它将在数据流上可用吗?

基于对此question的响应,我试图从BigQuery读取数据,然后在将数据写入GCP存储桶中的CSV之前随机化数据.我注意到我用来训练我的GCMLE模型的分片.csv并不是真正随机的.在tensorflow中,我可以随机化批处理,但这只会随机化队列中构建的每个文件中的行,我的问题是当前生成文件在某种程度上存在偏差.如果在数据流中写入CSV之前有任何关于其他方式进行随机播放的建议,那将非常感激.

最佳答案
一种方法是自己重新创建洗牌.

import random

shuffled_data = (unshuffled_pcoll
        | 'AddRandomKeys' >> Map(lambda t: (random.getrandbits(32),t))
        | 'GroupByKey' >> GroupByKey()
        | 'RemoveRandomKeys' >> FlatMap(lambda t: t[1]))

我剩下的问题是,如果我需要担心code的窗口或ExpandIterable部分

猜你在找的Python相关文章