在数据框上“迭代”时查看进度

时间:2019-09-17 14:52:02

标签: dataframe apache-spark plsql pyspark progress-bar

我想知道是否有更好的方法来查看Pyspark是否正在取得进展(在写入PL / SQL DB时)。 目前,在我的代码运行时,我看到的唯一输出是:

  

使用Spark的默认log4j配置文件:org / apache / spark / log4j-defaults.properties   将默认日志级别设置为“ WARN”。   要调整日志记录级别,请使用sc.setLogLevel(newLevel)。对于SparkR,请使用setLogLevel(newLevel)。   19/09/17 16:33:17 WARN JdbcUtils:不支持请求的隔离级别1。回到默认隔离级别2
  [阶段3:=============================>(1 +1)/ 2]

这将在1分钟到1小时之间保持不变,具体取决于数据帧的大小。通常我会使用progessbar2或自己做一个计数器。但是Spark的工作原理有所不同,并且不会“重复”经典方式,因此我无法用progressbar2 lib包装udf。

问题是,很难看到我的程序是仅在大型数据帧上运行还是有人忘记提交到SQL DB。因为,当Pyspark等待提交时,它看起来是一样的。因此,您可能已经猜到了,我在那里浪费了很多时间。

df_c = df_a.withColumn("new_col", my_udf(df_b["some_col"]))

在执行此步骤时,很高兴看到pyspark有所进展。

1 个答案:

答案 0 :(得分:1)

您可以在Spark-UI上检查您的Spark集群当前正在做什么。在这里,您可以检查Spark任务是否已完成或一切是否挂起。 Spark UI的默认URL为iOS 12.4.simruntime

如果您需要以更结构化的方式(例如,用于自动化处理)使用数据,则可以使用Spark-UI的REST-Interface