我想知道是否有更好的方法来查看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有所进展。
答案 0 :(得分:1)
您可以在Spark-UI上检查您的Spark集群当前正在做什么。在这里,您可以检查Spark任务是否已完成或一切是否挂起。 Spark UI的默认URL为iOS 12.4.simruntime
。
如果您需要以更结构化的方式(例如,用于自动化处理)使用数据,则可以使用Spark-UI的REST-Interface。