2016-04-16 619 views
1

我正在尝试在一个庞大的数据集上使用Spark的MLib,我们目前已经在时间序列数据库中保留了这个数据集。假设我们的时间序列数据库中有数据A,B,C,D和E,我想先加载A,B,C并首先进行一些转换,然后将转换后的数据传递给Spark MLib。Apache Spark RDD工作流程

我在这方面有几个问题。是否有我应该考虑的标准工作流程?我的意思是数据的加载,转换对我来说似乎仍然是一个问题。这不是Spark特有的。我想知道使用Apache Camel这样的框架进行ETL是否有任何好处,然后将结果提供给Spark?

有什么建议吗?

回答

0

加载和转换数据当然不是特定的火花,但它是非常擅长的。您可以免费获得许多不错的功能,例如容错,懒惰,快速批处理以及一切DSL的一致性。

你需要专门缓存在阶段?

想要合并来自SQL,S3,Kafka和Twitter的数据而无需维护20个不同的ETL脚本?

Spark可以做到这一切。

也有一些限制; Spark需要能够从数据集及其指定的转换中构建沿袭图,并且任何不是幂等的操作(如HTTP请求)都会中断该类图。

不知道更加极高总摘要:

  1. 如果你“自己”的所有数据源(也就是他们居住在一个数据库或某事),结合所有的ETL和mllib方案。那么你不必用演出和演出数据来演奏热土豆。

  2. 如果您需要依赖外部数据的某些来源,请编写一些代码来抓取并拥有它。