【问题标题】:Parallelize loop operation with Google Data Flow使用 Google Data Flow 并行化循环操作
【发布时间】:2017-03-07 14:32:09
【问题描述】:

我想运行一个包含数千个 CSV 文件和各种组合的 ARIMA 模型

使用 Pyflux 这是一些python代码..

index =0
#filename has file names of thousands of files
for csvfile in filenames:
data = pd.read_csv(csvfile)
model = pf.ARIMA(data=data,ar=4,ma=4,integ=0,target='sunspot.year')
x = model.fit("MLE")

list_of_results[index] = list_of_tuples[index] + (x.summary(),)

index++

我可以在 Big Query 中加载这些 CSV,并希望将这个将数据发送到 ARIMA 模型的操作并行化,因为通过 ARIMA 模型使用这些文件或 BigQuery 结果运行数据的操作可以并行运行,以便我可以保存在此操作上花费大量时间。

有没有办法在 Google 数据流中实现这一点?

【问题讨论】:

    标签: python google-bigquery google-cloud-dataflow apache-beam


    【解决方案1】:

    如果所有 CSV 文件都在 GCS 上,您应该能够创建一个从 GCS 读取它们的简单管道,并在每个元素上并行运行您的模型。

    请参阅ParDo 上的文档以并行处理所有元素:https://cloud.google.com/dataflow/model/par-do

    【讨论】:

    • ARIMA 库在 Python 和 R 中可用。有没有在 Python 中使用 ParDo 的方法?或在数据流上使用 R..
    • 在 python 上得到 ParDo 将尝试它beam.apache.org/documentation/programming-guide/…
    • 您应该注意 Apache Beam 将计算拆分到多个进程中,因此您将为每个进程(实际上是每个捆绑包)拥有一个单独的 ARIMA 模型。您将需要一种将模型合并为一个的方法,或者一种单独使用不同模型的方法。
    • @Pablo 看到你来自 Dataflow 团队...我在 Youtube 上没有看到 Google 提供的任何详细教程,它为新手从头开始解释 Dataflow 概念。我的数据很大查询并能够使用 python/pandas 查询和修改它。如果你能指出一个很好的资源,这将使 DataFlow 比谷歌文档更容易理解。或者让你的团队做一个。演示文稿给总体概念,但我希望看到包含 Pipeline PCollection PTransform 和 I/O 源和同步的所有主要概念的代码运行
    • 这是一个演示:youtube.com/watch?v=3UfZN59Nsk8你觉得有用吗?
    猜你喜欢
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    相关资源
    最近更新 更多