Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dataframe pyspark内存消耗非常低_Dataframe_Pyspark - Fatal编程技术网

Dataframe pyspark内存消耗非常低

Dataframe pyspark内存消耗非常低,dataframe,pyspark,Dataframe,Pyspark,我正在使用anaconda python,并在其上安装了pyspark。在pyspark程序中,我使用dataframe作为数据结构。程序如下所示: from pyspark.sql import SparkSession spark_session = SparkSession.builder.appName("test").getOrCreate() sdf = spark_session.read.orc("../data/") sdf.createOrReplaceTempView("

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

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')
但这似乎毫无帮助

有什么方法可以加速这个计划吗?特别是如何充分利用系统内存


谢谢

您可以为会话使用配置:

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
设置为合理的值


希望这有帮助,祝你好运

我认为你的代码有问题。您使用的分组方式没有聚合函数。如果有多行具有相同的field1值,这将给您错误的答案。谢谢,这只是为了演示这个问题。实际查询要复杂得多。谢谢你的建议。作为一个新手,我发现我实际上是在本地模式下运行它,所以设置spark.driver.memory对我来说很有用。谢谢!我很高兴我帮了忙:)