小编Mee*_*hew的帖子

如何在PySpark中的不同线程中在一个Sparkcontext中运行多个作业?

从Spark文档中可以了解到应用程序中的调度:

在给定的Spark应用程序(SparkContext实例)中,如果从单独的线程提交多个并行作业,则它们可以同时运行.通过"作业",在本节中,我们指的是Spark动作(例如,保存,收集)以及需要运行以评估该动作的任何任务.Spark的调度程序是完全线程安全的,并支持此用例,以支持提供多个请求的应用程序(例如,查询多个用户)."

我在Scala和Java中找到了相同的示例代码.有人可以举例说明如何使用PySpark实现这一点吗?

python multithreading apache-spark pyspark

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

为什么zeppelin不支持--py-files?

我有一个python包,其中包含许多内置在.egg文件中的模块,我想在zeppelin笔记本中使用它.根据zeppelin文档,要将此包传递给zeppelin spark解释器,您可以通过conf/zeppelin-env.sh中SPARK_SUBMIT_OPTIONS中的--files选项将其导出.关于此,我有以下问题:

  1. 在pyspark shell中,带有--py-files的.egg文件正在工作(即我能够在pyspark shell中导入包内的模块),而带有--files选项的相同.egg文件不起作用(ImportError) :没有名为XX.xx的模块)

  2. 在zeppelin中的SPARK_SUBMIT_OPTIONS中通过--py-files选项添加.egg文件会导致错误: Error: --py-files given but primary resource is not a Python script. 根据我的理解,SPARK_SUBMIT_OPTIONS中给出的任何内容都会传递给spark-submit命令,但为什么--py-files会抛出错误?

  3. 当我通过SPARK_SUBMIT_OPTIONS中的--files选项添加.egg时,zeppelin笔记本不会抛出错误,但我无法在zeppelin笔记本中导入模块.

传递.egg文件zeppelin spark intrepreter的正确方法是什么?

Spark版本为1.6.2,zeppelin版本为0.6.0

zepplein-env.sh文件包含以下内容:

export SPARK_HOME=/home/me/spark-1.6.1-bin-hadoop2.6
export SPARK_SUBMIT_OPTIONS="--jars /home/me/spark-csv-1.5.0-s_2.10.jar,/home/me/commons-csv-1.4.jar --files /home/me/models/Churn-zeppelin/package/build/dist/fly_libs-1.1-py2.7.egg"
Run Code Online (Sandbox Code Playgroud)

python pyspark apache-zeppelin

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