我有大约20 in的时间序列数据存储在大查询中。
我目前的管道是:
大查询=>中的原始数据加入大查询以创建更大的查询数据集=>将它们存储在桶中
然后我在桶中下载了一个文件的子集:
使用Python/SFrame对数据进行插值/重采样,因为有些时间序列数据缺少时间,而且采样不均匀。
然而,在本地PC上需要很长时间,我猜需要几天的时间才能通过20 to的数据。
既然数据已经在桶里了,我想知道谷歌最好的插值和重采样工具是什么?
在重新采样和插值之后,我可能会使用Facebook的先知( Prophet )或自动阿里玛( ARIMA )来创建一些预测。但这将是在当地完成的。
谷歌提供的一些服务似乎是不错的选择。
有没有人知道哪一个最适合我的用例?
谢谢
发布于 2018-04-13 07:57:18
我会在Dataproc上使用PySpark,因为Spark不仅是实时/流的,而且也是批处理的。
您可以选择集群的大小(并使用一些可抢占性来节省成本),并且只在实际需要处理这些数据的时候运行这个集群。然后杀了集群。
星星之火也能很好地与Python一起工作(不像Scala那样好),但就所有效果和目的而言,主要的区别在于性能,而不是降低API功能。
即使是批处理,您也可以使用WindowSpec进行有效的时间序列插值。
公平地说:我对DataFlow或DataPrep没有太多的经验,但这是因为我们的用例有点类似于您的用例,所以Dataproc在这方面很好
发布于 2018-04-13 11:32:26
Cloud是一种批处理数据,Cloud是一个托管的Spark和Hadoop服务,Cloud用于转换/清理原始数据。它们都可以用来对数据进行插值/重采样。
我会抛弃云数据报。它可能会以向后兼容的方式改变,因为它是在beta版本中。云数据流和云Dataproc的主要区别在于最后一种集群管理功能。如果您不期望通过管理集群实现明显的恢复,则Cloud是可以以最简单的方式设置上述操作的产品。
版本比Python版本早,因为ApacheBeam1.X只支持Java。新的2.X版本支持两种语言,没有明显的Python/Java差异。
如果您认为Dataflow是最合适的选项,那么您将发现这个数据流timeseries示例在Java中很有用。
https://stackoverflow.com/questions/49809084
复制相似问题