我有这个代码片段,我仅使用 100 条记录以独立模式在本地运行:
from awsglue.context import GlueContext
glue_context = GlueContext(sc)
glue_df = glue_context.create_dynamic_frame.from_catalog(database=db, table_name=table)
df = glue_df.toDF()
print(df.count())
该模式包含 89 列,所有列都具有字符串数据类型,但 5 列具有结构数据类型的数组。数据大小为 3.1 MB。
此外,以下是有关用于运行代码的环境的一些信息:
- spark.executor.cores:2
- spark.executor.id:驱动程序
- spark.driver.memory:1000M
问题是我不知道为什么第 1 阶段需要 12 分钟才能完成,而它只需要计算 100 条记录。我找不到“扫描镶木地板”和“交换”任务的含义,如图所示: Stage 1 DAG Visualization
我的问题是,是否有更系统的方法来理解这些任务的含义。作为初学者,我非常依赖 Spark UI,但它并没有提供太多关于它已执行的任务的信息。我能够找到哪个任务花费的时间最多,但我不知道为什么会这样以及如何系统地解决它。