pyspark:运行 python 脚本并在命令行上查看结果

Posted

技术标签:

【中文标题】pyspark:运行 python 脚本并在命令行上查看结果【英文标题】:pyspark: run a python script and see results on commandline 【发布时间】:2017-12-15 08:29:56 【问题描述】:

我在 pyspark 1.6.2 中执行了一个 python 脚本文件(是的,出于认证培训的原因,这是一个旧的)。

spark-submit --master yarn-cluster s01.py

运行时它只返回“application_somelongnumber 的应用程序报告”。我所期待的是它显示了我的脚本命令的输出。这样我就可以检查我是否开发正确。我应该怎样做才能更好地得到我想要的?

我的脚本内容:

#!/usr/bin/python

from pyspark.sql import Row
from pyspark.sql.functions import *
from pyspark import SparkContext
sc = SparkContext(appName = "solution01")

a = sc.textFile("/data/crime.csv")
b = a.take(1)
sc.stop()
print(b)

更新 :当我执行 pyspark s01.py 时,我看到了我的结果,但这不是预期的行为,因为我希望它在集群上使用参数执行。

【问题讨论】:

【参考方案1】:

1) 打印语句在纱线模式下不起作用。而是像这样使用 foreach :

myRDD.collect().foreach(println)

2) 您应该在调试时使用 yarn-client 模式而不是 yarn-cluster,在这种情况下,将在您执行 spark-submit 命令的机器上创建 spark 驱动程序。

3) 当你在 yarn-cluster 模式下执行 spark 命令时。执行期间在控制台上看不到日志。有一个使用应用程序 ID 生成的 URL。您可以在给定的 url 查看日志。

或者,您可以将日志从集群下载到本地机器,一旦执行完成,使用以下命令:

yarn logs -applicationId <application>

【讨论】:

以上是关于pyspark:运行 python 脚本并在命令行上查看结果的主要内容,如果未能解决你的问题,请参考以下文章

jupyter notebook 怎么跑pyspark

如何在 Pyspark 中运行 Python 脚本

如何在命令行里运行python脚本

用于运行命令行的 Python 脚本,该命令行启动具有特定 Python 版本的 Python 脚本

如何在命令行里运行python脚本

Python:从命令行运行小型多行脚本