使用spark处理时间序列数据

时间:2017-05-22 13:35:26

标签: scala apache-spark apache-spark-sql spark-dataframe

我们的要求是对Phoenix(HBase)时间序列表进行一些分析操作。我们在postgresql中有一个表有uniqueIds。

现在我们从postgresql表获取所有uniqueIds并查询Phoenix表中相应的uniqueIds并应用分析函数。但是这里所有uniqueIds都是按顺序处理的。我们需要这个并行运行。我们正在使用scala和spark来实现此功能。

以下是示例代码

    "pagingType": "simple_numbers"
你可以告诉我这样做的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用scala提供的parallel collection功能。

results.par.foreach {
// Your code to be executed
}

答案 1 :(得分:0)

创建一个{HBA DataFrame的联合DataFrame,然后将您的分析函数应用于此单DataFrame。类似的东西:

val hbaseDFs = results.map(loadHbaseData)
val unitedDF = hbaseDFs.reduce(_ union _)
unitedDF.map(func).save()

这种方法会对union s中的大量数字(根据您在另一个答案中的评论为30K +)调用DataFrame,因此将DataFrame s转换为{{}可能会更快1}}在执行RDD之前,如here所述。