Dataproc上的Pyspark作业在阶段0被卡住
我有一个带有2个工作节点的Dataproc集群。我的pyspark程序非常简单 1) 从Bigquery读取500MB数据 2) 应用一些自定义项 3) 根据某些条件显示pyspark SQL数据帧的结果 在第三步中,作业被卡在阶段0,什么也不做。我是Pyspark的新手,但我不认为数据太大,它会被绞死。请帮帮我 @亚当 我的UDF来自RDkit库。是否可以使UDF有效,以便以秒为单位输出Dataproc上的Pyspark作业在阶段0被卡住,pyspark,google-cloud-dataproc,Pyspark,Google Cloud Dataproc,我有一个带有2个工作节点的Dataproc集群。我的pyspark程序非常简单 1) 从Bigquery读取500MB数据 2) 应用一些自定义项 3) 根据某些条件显示pyspark SQL数据帧的结果 在第三步中,作业被卡在阶段0,什么也不做。我是Pyspark的新手,但我不认为数据太大,它会被绞死。请帮帮我 @亚当 我的UDF来自RDkit库。是否可以使UDF有效,以便以秒为单位输出 from rdkit import Chem user_smile_string = 'ONC(=O)c
from rdkit import Chem
user_smile_string = 'ONC(=O)c1ccc(I)cc1'
mol = Chem.MolFromSmiles(user_smile_string)
def Matched(smile_structure):
try:
match = mol.HasSubstructMatch(Chem.MolFromSmiles(smile_structure))
except Exception:
pass
else:
return (match)
正如评论中提到的,您需要对工作进行故障排除,以了解发生了什么 您可以从探索开始,并且可以从谷歌云用户界面访问
如果这不会产生任何有用的信息,那么您需要使用Spark并从那里开始。由于.show()(df的显示)是触发转换的操作,因此UDF可能有问题,但在不知道实际代码的情况下很难估计,或错误消息。是否检查了资源管理器和节点管理器日志?在Dataproc虚拟机上,它们位于
/var/logs/hadoop-thread/
下,您可以检查DAG以了解执行的确切位置。有时,输入数据集很小,但经过多次操作(如join)后,它会变得很大。此外,您还可以查看Thread web UI以查看是否存在挂起的资源分配。