df = spark.read.format('csv').load('...')
据我了解,load是一个转换,仅在调用动作时才执行。但是,在执行load语句时,它似乎是Spark UI下的一个动作。
编辑:
从评论/答案中,我推断负载可能是也可能不是转换,但不是绝对是一项很棒且可以理解的动作。
如果不是动作,为什么要创建DAG? 它不仅为WholeStageCodegen(位于SQL选项卡中),还为装入语句创建DAG。 请看下图: Screenshot
答案 0 :(得分:1)
具体地,根据您的评论:
加载不执行任何操作。它只是sqlContext.read的一部分或 spark.read.format API作为参数,可以间接设置或 直接读。读取允许指定数据格式。
DF或底层RDD的评估很懒惰。
答案 1 :(得分:0)
Load既不是动作也不是变换,它是DataFrameReader类的方法 描述了如何从外部数据源加载数据。
DataFrameReader的所有方法仅描述加载数据的过程,并且不会触发Spark作业(直到调用动作)。
jaceklaskowski提到了这一点,请阅读https://jaceklaskowski.gitbooks.io/mastering-spark-sql/spark-sql-DataFrameReader.html#methods
您还可以在此处引用数据块中的转换和操作API列表 https://training.databricks.com/visualapi.pdf负载在任何地方都没有提到是一种转换或动作