如何在 pyspark 上使用多核(来自 python 脚本)

alc*_*cor 2 python pyspark

我正在使用 pyspark 对 parquet 文件进行一些 sql 查询。我需要使用多个核心,但我没有找到任何有用的信息。这是我正在使用的代码。正如您所看到的,我将核心数量设置为 3,但是当我运行脚本时,我可以在 htop 上看到只有 1 个核心在使用。我该如何解决这个问题?

from pyspark.sql import SparkSession
from pyspark.sql.types import *
spark = SparkSession \
        .builder \
        .appName("Python Spark SQL tests") \
        .config("spark.executor.cores", 3) \
        .getOrCreate()
# Check conf
for item in spark.sparkContext.getConf().getAll():
    print(item)
# Open file and create dataframe
filename = "gs://path/to/file.parquet"
df = spark.read.parquet(filename)
# Create table
df.createOrReplaceTempView("myTable")
# Query
sqlDF = spark.sql("SELECT * FROM myTable")
sqlDF.show()
Run Code Online (Sandbox Code Playgroud)

小智 6

据我了解,您使用独立的 Spark(仅在您的机器中而不是集群中)。

尝试:

from pyspark import sql


spark = (
    sql.SparkSession.builder.master("local[*]")
    .config("spark.executor.memory", "32g")
    .config("spark.driver.memory", "32g")

    ...

    .getOrCreate()
)
Run Code Online (Sandbox Code Playgroud)

*inlocal[*]意味着使用所有可用的核心。您可以给出一个数字,例如local[3].