Apache Spark RDD工作流程

时间:2016-04-16 06:24:38

标签: apache-spark apache-camel

我试图在一个庞大的数据集中使用Spark的MLib,这个数据集目前已经存在于时间序列数据库中。让我们说如果我们的时间序列数据库中有数据A,B,C,D和E,我想加载A,B,C并首先进行一些转换,然后将转换后的数据传递给Spark MLib。

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

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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

你需要在阶段专门缓存吗?

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

Spark可以做到这一切。

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

非常一般的总结,不知道更多:

  1. 如果您拥有"所有数据源(即它们驻留在数据库或其他东西中),将所有ETL和mllib程序组合在一起。那么你就不必用数字演出和数据演奏烫手山芋。

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