首页 > 解决方案 > Pyspark 中的并行处理

问题描述

我有一个包含 500 万个项目的大型数据集,包括它们的 ID、成本等。我一直在 Pyspark shell 中使用 sqlContext 来加载 JSON 并创建一个数据框,最后在该数据框上应用所有必需的操作。

我是 spark 新手并且有一个查询,每当我对我的数据框执行操作时,无论是内置函数(例如,使用 sqlContext.read.json(filePath) 加载 JSON)还是使用 udf,它是自动多线程的还是我是否需要明确指定某些内容以使其成为多线程?如果是多线程的,如何查看和更改当前正在使用的线程数?

标签: apache-sparkpyspark

解决方案


不涉及多线程(也不会有用),但是通过使用单独的工作进程处理分区来并行执行。

控制并行度:

  • 调整工作核心的数量。
  • 调整DataFrame分区数(读取或按repartition)。

推荐阅读