PySpark 打印到控制台

PySpark print to console

当 运行 dataproc 服务器上的 PySpark 作业像这样时

gcloud --project <project_name> dataproc jobs submit pyspark --cluster <cluster_name> <python_script>

我的打印语句没有出现在我的终端中。

当运行个作业在云端时,有没有办法将数据输出到PySpark的终端?

编辑:我想 print/log 从我的转换中获取信息。例如:

def print_funct(l):
    print(l)
    return l

rddData.map(lambda l: print_funct(l)).collect()

应该打印RDD中的每一行数据rddData

进行一些挖掘后,我发现了这个 answer for logging, however, testing it provides me the results of ,它的回答表明在转换中无法进行日志记录

转换内部的打印或日志记录将最终出现在 Spark 执行器日志中,可以通过 YARN ResourceManager Web UI.

通过应用程序的 AppMaster 或 HistoryServer 访问这些日志

您也可以收集与输出一起打印的信息(例如在字典或元组中)。您也可以将其存放在蓄电池中,然后从驱动程序打印出来。

如果您正在进行大量打印语句调试,您可能会发现通过 SSH 连接到您的主节点并使用 pyspark REPL 或 IPython 来试验您的代码会更快。这也将允许您使用 --master 本地标志,这将使您的打印语句出现在标准输出中。