【问题标题】:Generating data with Google Dataflow使用 Google Dataflow 生成数据
【发布时间】:2015-03-04 21:02:17
【问题描述】:

假设我想生成 100 万亿条数据(为了简单起见,使用随机数),我想使用 Google Dataflow 来完成。

我可以想到一个愚蠢的方法来做到这一点(我不是 100% 确定这会奏效,但这是我开始尝试的地方):获取一个 1000 万行长的文本文件,并且对于每一行在输入文本文件中有一个循环 1000 万次迭代的 DoFn,每次迭代输出一个随机生成的数字,最终都输出到一个文本文件中。 (原始文本文件中的任何内容都将被忽略)。

但我不禁想到,使用 Dataflow 生成数据可能有更好、更简单的方法。有什么更好的方法建议吗?

谢谢!

【问题讨论】:

    标签: google-cloud-dataflow data-generation


    【解决方案1】:

    对于小数据集,你可以直接使用 pipeline.apply(Create.of(...)) 生成,但它不会扩展(生成代码将在本地执行)。

    更好的方法可能是:

    List<Integer> l = ...; // 100k integers inside
    pipeline.apply(Create.of(l)).apply(ParDo.of(new Generate100MDoFn())).apply(TextIO.Write.to(...));
    

    这样会使数据流并行地均匀生成大量数据。

    【讨论】:

      【解决方案2】:

      简单,只需使用您自己的数字生成器扩展 Source 类:https://cloud.google.com/dataflow/model/custom-io

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-25
        • 2018-10-21
        • 1970-01-01
        • 2016-05-27
        • 1970-01-01
        • 2018-07-05
        相关资源
        最近更新 更多