说我有一个看起来像下面的火花作业:
def loadTable1() {
val table1 = sqlContext.jsonFile(s"s3://textfiledirectory/")
table1.cache().registerTempTable("table1")
}
def loadTable2() {
val table2 = sqlContext.jsonFile(s"s3://testfiledirectory2/")
table2.cache().registerTempTable("table2")
}
def loadAllTables() {
loadTable1()
loadTable2()
}
loadAllTables()
如何并行化这个Spark作业,以便同时创建两个表?
答案 0 :(得分:3)
您无需并行化。 RDD / DF创建操作不执行任何操作。这些数据结构是 lazy ,因此任何实际计算只会在您开始使用它们时发生。当Spark计算确实发生时,它将自动并行化(逐个分区)。 Spark将在执行程序之间分配工作。所以你通常不会通过引入进一步的并行性来获得任何东西。
答案 1 :(得分:0)
使用期货!
getBytes()
答案 2 :(得分:-1)
您可以使用标准的scala线程机制执行此操作。就个人而言,我想做一个路径和路径对的列表。表名,然后平行映射。您还可以查看期货或标准线程。