scala - 如何在 Spark 中并行化 RDD/DataFrame 创建?

标签 scala parallel-processing apache-spark apache-spark-sql

假设我有一个如下所示的 Spark 工作:

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 作业以便同时创建两个表?

最佳答案

您不需要并行化它。 RDD/DF 创建操作不执行任何操作。这些数据结构是惰性的,因此只有当您开始使用它们时才会发生任何实际计算。当 Spark 计算确实发生时,它将自动并行化(逐个分区)。 Spark 将在执行器之间分配工作。因此,通过引入进一步的并行性,您通常不会获得任何好处。

关于scala - 如何在 Spark 中并行化 RDD/DataFrame 创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31281383/

相关文章:

python - 并行运行 Flair 嵌入

matlab - appdata 是否在并行池中的工作人员之间共享?

apache-spark - Apache Spark : Get the first and last row of each partition

scala - 为什么 sbt-native-packager 在分发包中生成一个硬编码的顶级父目录?

scala - 尽管有 Spark 过滤器,Hive 分区表仍会读取所有分区

python - joblib.Parallel 如何处理全局变量?

python - 如何在 PySpark ML 中创建自定义 SQLTransformer 来透视数据

python - Pyspark 架构中 StructType 的 VectorType

scala - 在 Spark 中使用 scopt OptionParser 时出现 NoClassDefFoundError

java - S3 java API 未正确列出文件夹。