pyspark内存消耗非常低

时间:2018-03-06 02:50:39

标签: dataframe pyspark

我正在使用anaconda python并在其上安装了pyspark。在pyspark程序中,我使用数据帧作为数据结构。该计划如下:

from pyspark.sql import SparkSession

spark_session = SparkSession.builder.appName("test").getOrCreate()
sdf = spark_session.read.orc("../data/")
sdf.createOrReplaceTempView("data")
df = spark_session.sql("select field1, field2 from data group by field1")
df.write.csv("result.csv")

虽然这有效,但速度很慢,内存使用率非常低(~2GB)。安装了更多的物理内存。

我尝试通过以下方式增加内存使用量:

from pyspark import SparkContext
SparkContext.setSystemProperty('spark.executor.memory', '16g')

但它似乎没有任何帮助。

有什么方法可以加快程序的速度?特别是如何充分利用系统内存?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用会话配置:

conf = SparkConf()
conf.set(spark.executor.memory', '16g')
spark_session = SparkSession.builder \
        .config(conf=conf) \
        .appName('test') \
        .getOrCreate()

或者使用spark-submit运行脚本:

spark-sumbit --conf spark.executor.memory=16g yourscript.py

您还应该将spark.driver.memory设置为合理的。

希望这有帮助,祝你好运!