我们的要求是对Phoenix(HBase)时间序列表进行一些分析操作。我们在postgresql中有一个表有uniqueIds。
现在我们从postgresql表获取所有uniqueIds并查询Phoenix表中相应的uniqueIds并应用分析函数。但是这里所有uniqueIds都是按顺序处理的。我们需要这个并行运行。我们正在使用scala和spark来实现此功能。
以下是示例代码
"pagingType": "simple_numbers"
你可以告诉我这样做的最佳方法是什么?
答案 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所述。