Databricks Spark 在收集增量表时卡在 0 运行状态

问题描述 投票:0回答:1

我正在 databricks 上执行这个简单的代码:

df = spark.read.table(table_name).sample(fraction=0.1)
my_df = df.collect()

我正在访问 Unity Catalog 上的外部托管 Delta 表,该表具有以下属性:

Size
3.1GiB, 13 files

Columns 
13

我使用的集群相当大,m4x10large,有 160GB 或内存,而且我还对数据进行了大量下采样。

代码执行得很快,但随后就永远卡在这里了:

enter image description here

与此同时,集群什么也没做。我查看了日志,唯一引起我注意的是:

2024-09-20T11:10:57.351+0000: [GC (Allocation Failure) [PSYoungGen: 36727934K->1398166K(35979264K)] 37066227K->1736467K(119453184K), 13.8056805 secs] [Times: user=68.37 sys=1.95, real=13.80 secs] 

这是垃圾邮件,直到最终集群完全消失,我认为是因为 databricks 设置了一些超时。

知道从哪里开始调试吗?数据集已被优化,因为一开始我认为这可能是分区问题。

apache-spark pyspark databricks delta-lake
1个回答
0
投票

驱动器尺寸是多少? collect 方法会将所有数据带到驱动程序,如果它接近我们试图获取的内存,则会导致垃圾收集。

如果显示(df)工作正常,没有任何问题,则驱动程序大小可能是潜在问题。

© www.soinside.com 2019 - 2024. All rights reserved.