I have a single-node system with 504 GB of ram and 112 cores and I need to analyze 12 files of 330 GB each. I have configured pyspark in the following way:
from pyspark.sql import SparkSession
import os
import sys
os.environ['PYSPARK_PYTHON'] = sys.executable
os.environ['PYSPARK_DRIVER_PYTHON'] = sys.executable
import pyspark.pandas as ps
spark = (SparkSession.builder
.master('local[*]')
.config("spark.executor.memory", "100G")
.config("spark.driver.memory", "100G")
.config("spark.executor.instances", "16")
.config("spark.default.parallelism", "1500")
.config("spark.driver.cores", "5")
.config("spark.executor.cores", "5")
.config("spark.sql.inMemoryColumnarStorage.compressed", "True")
.appName('app')
.getOrCreate())
from pyspark.shell import sqlContext
sqlContext.sql("set spark.sql.shuffle.partitions=1500")
spark.sparkContext.getConf().getAll()
The output is as follows:
[('spark.app.name', 'app'),
('spark.app.startTime', '1662654451791'),
('spark.default.parallelism', '1500'),
('spark.executor.cores', '5'),
('spark.driver.cores', '5'),
('spark.executor.id', 'driver'),
('spark.app.id', hidden from me),
('spark.executor.instances', '16'),
('spark.driver.host', hidden from me),
('spark.executor.memory', '100G'),
('spark.rdd.compress', 'True'),
('spark.sql.inMemoryColumnarStorage.compressed', 'True'),
('spark.serializer.objectStreamReset', '100'),
('spark.sql.warehouse.dir', hidden from me),
('spark.master', 'local[*]'),
('spark.submit.pyFiles', ''),
('spark.submit.deployMode', 'client'),
('spark.driver.port', hidden from me),
('spark.ui.showConsoleProgress', 'true'),
('spark.driver.memory', '100G')]
I wanted to know if spark is actually using all allocated memory, since running the top command I get:
(the value remains fixed at 7.9)

