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 脚本并在命令行上查看结果的主要内容,如果未能解决你的问题,请参考以下文章