首页 > 解决方案 > spark中的“加载”命令是动作还是转换?

问题描述

df = spark.read.format('csv').load('...')

据我了解, load 是一种转换,仅在调用操作时才执行。但是,在执行 load 语句时,它似乎是 Spark UI 下的一个操作。

编辑:

从评论/答案中,我推断负载可能是也可能不是转换,但绝对不是一个很好且可以理解的动作。

如果它不是一个动作,为什么它要创建一个 DAG?它只为加载语句创建一个 DAG,而不仅仅是 WholeStageCodegen(位于 SQL 选项卡中)。请看下图: 截图

标签: apache-sparkpyspark

解决方案


具体来说,根据您的评论:

加载什么都不做。它只是作为参数的 sqlContext.read 或 spark.read.format API 的一部分,可以在读取时间接或直接设置。read 允许指定数据格式。

正如他们所说,DF 或底层 RDD 被懒惰地评估。


推荐阅读