小编Cat*_*lts的帖子

多处理 Python 中 multiprocessing.Queue() 的返回值

我运行一个简单的多进程程序(下面的代码)。我只制作 2 个处理器,然后初始化一个队列来存储结果。

我想知道为什么名称相同q,但每次打印出不同的值。我知道队列存储 2 个返回值,来自pro1pro2。但我预计,它是这样的:

q = [1,2]
Run Code Online (Sandbox Code Playgroud)

或者

q=[2,1] #depend on which one runs first
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚一个变量如何q可以是 1 或 2。

这让我很困惑。谢谢。

代码:

import multiprocessing


def run(ID, q):
    print("Starting thread %s " % (ID))

    q.put(ID)
    return None

if __name__ == '__main__':
    q = multiprocessing.Queue()  #store the result
    pro1 = multiprocessing.Process(target=run, args=(1,q))
    pro2 = multiprocessing.Process(target=run, args=(2,q))

    pro1.start()
    pro2.start()

    pro1.join()
    pro2.join()

    print("q is ", q.get())
    print("another q is ", q.get())
Run Code Online (Sandbox Code Playgroud)

结果

Starting thread …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing

6
推荐指数
1
解决办法
6890
查看次数

如何在客户端模式下设置 `spark.driver.memory` - pyspark(版本 2.3.1)

我是 PySpark 的新手,我正在尝试在我的本地计算机上使用pySpark(版本 2.3.1)和Jupyter-Notebook

我想设置spark.driver.memory通过这样做是为了9GB:

spark = SparkSession.builder \
       .master("local[2]") \
       .appName("test") \
       .config("spark.driver.memory", "9g")\
       .getOrCreate()
sc = spark.sparkContext
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)

spark.sparkContext._conf.getAll()  # check the config
Run Code Online (Sandbox Code Playgroud)

它返回

[('spark.driver.memory', '9g'),
('spark.driver.cores', '4'),
('spark.rdd.compress', 'True'),
('spark.driver.port', '15611'),
('spark.serializer.objectStreamReset', '100'),
('spark.app.name', 'test'),
('spark.executor.id', 'driver'),
('spark.submit.deployMode', 'client'),
('spark.ui.showConsoleProgress', 'true'),
('spark.master', 'local[2]'),
('spark.app.id', 'local-xyz'),
('spark.driver.host', '0.0.0.0')]
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为当我查看文档时,它表明

注意:在客户端模式下,此配置不能直接在您的应用程序中通过 SparkConf设置,因为驱动程序 JVM 已经在此时启动。相反,请通过 --driver-memory 命令行选项或在您的默认属性文件中进行设置。文档在这里

但是,正如您在上面的结果中看到的,它返回

[('spark.driver.memory', '9g')

即使我访问 …

python config pyspark

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×2

config ×1

multiprocessing ×1

pyspark ×1