如何在 Azure Databricks 笔记本中调试长 运行 python 命令?

how to debug long running python commands in Azure Databricks notebook?

我正在学习本教程:https://docs.microsoft.com/en-us/academic-services/graph/tutorial-azure-databricks-hindex

我已经获得了对 Microsoft Academic Graph 数据集的访问权限,并希望针对它发布一些基本的 pySpark 代码,完全按照教程进行。

例如,这段代码:

# Get affiliations
Affiliations = MAG.getDataframe('Affiliations')
Affiliations = Affiliations.select(Affiliations.AffiliationId, Affiliations.DisplayName)
Affiliations.show(3)

当我 运行 使用 'Shift + Enter' 的代码时,它会进入 'Running command' 状态 - 并且似乎永远不会完成,即使在半小时之后。我已经插入了这个的屏幕截图并附加到我的 post。

我有 运行 个单独的命令,这是导致缓慢的最后一个 (Affiliations.show(3))。

例如,当我 运行 命令 (Affiliations = MAG.getDataframe('Affiliations')) 本身时,我实际上得到的结果是:

AffiliationId:long
Rank:integer
NormalizedName:string
DisplayName:string
GridId:string
OfficialPage:string
WikiPage:string
PaperCount:long
CitationCount:long
Latitude:float
Longitude:float
CreatedDate:date

问题:如何调试它以找出导致速度缓慢的原因?

在笔记本环境中调试分布式应用程序仍然具有挑战性。尽管网络 UI 具有必要的信息,但网络 UI 与开发环境之间存在差距:通常很难在网络 UI 中找到与开发环境相关的信息您正在调查的代码;并且没有简单的方法可以找到历史运行时信息。

了解如何使用 Databricks Spark 进行调试 UI:

Spark UI 包含大量可用于调试 Spark 作业的信息。有很多很棒的可视化效果,我们在这里有一篇关于这些功能的博客 post。

有关更多详细信息,请单击 Jobx 视图(阶段):

参考: Tips to Debug Apache Spark UI with Databricks

希望对您有所帮助。