python-2.7 - PySpark打印到控制台

标签 python-2.7 pyspark google-cloud-dataproc

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

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

我的打印报表没有显示在我的终端上。

在云上运行作业时,有什么方法可以将数据输出到PySpark的终端上?

编辑:我想从转换中打印/记录信息。例如:
def print_funct(l):
    print(l)
    return l

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

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

进行一些挖掘后,我发现了这个answer for logging,但是对其进行测试,为我提供了this question的结果,其回答指出在转换中无法记录

最佳答案

在转换内部进行打印或记录将最终保存在Spark执行程序日志中,可以通过YARN ResourceManager Web UI通过应用程序的AppMaster或HistoryServer访问。

您也可以在输出旁边(例如,在dict或tuple中)收集要打印的信息。您也可以将其存放在累加器中,然后从驱动程序中进行打印。

如果您要进行很多打印语句调试,则可能会发现SSH更快地进入主节点并使用pyspark REPL或IPython来测试代码会更快。这也将允许您使用--master本地标志,这将使您的打印语句出现在stdout中。

关于python-2.7 - PySpark打印到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37407256/

相关文章:

使用用户提供的值替换 HTML 文件中的文本的 Python 脚本

python - 成交量加权移动平均线

apache-spark - Spark 2.0 : Redefining SparkSession params through GetOrCreate and NOT seeing changes in WebUI

google-cloud-dataproc - Blob 的 Google Cloud Storage 原子创建

python - 如何将 Unicode 组合到 Python 2 输出中?

python - 在opencv中更改图像的比例和数据类型

hdfs - 如果无法通过 SSH 连接到主节点,则在 dataproc 集群上运行 HDFS 命令

python - ModuleNotFoundError 因为 PySpark 序列化程序无法找到库文件夹

json - SPARK read.json 抛出 java.io.IOException : Too many bytes before newline

Python单元测试断言2数据帧