apache-spark - spark中的“加载”命令是动作还是转换?
问题描述
df = spark.read.format('csv').load('...')
据我了解, load 是一种转换,仅在调用操作时才执行。但是,在执行 load 语句时,它似乎是 Spark UI 下的一个操作。
编辑:
从评论/答案中,我推断负载可能是也可能不是转换,但绝对不是一个很好且可以理解的动作。
如果它不是一个动作,为什么它要创建一个 DAG?它只为加载语句创建一个 DAG,而不仅仅是 WholeStageCodegen(位于 SQL 选项卡中)。请看下图: 截图
解决方案
具体来说,根据您的评论:
加载什么都不做。它只是作为参数的 sqlContext.read 或 spark.read.format API 的一部分,可以在读取时间接或直接设置。read 允许指定数据格式。
正如他们所说,DF 或底层 RDD 被懒惰地评估。
推荐阅读
- c++ - 如何从“sockaddr_storage”实例中检索 IP 和端口?
- masstransit - 如何将 MassTransit 消息标头注入我的自定义类构造函数?
- asp.net - 单击时禁用链接按钮 - 没有任何效果
- php - 如何在 laravel 的请求类中使用 if/else
- javascript - 什么时候应该使用 componentDidMount?
- scala - Spark 的分层凝聚聚类
- ckeditor - 内联编辑器 - 禁用编辑器并显示 HTML / 渲染内容 (Vue)
- java - 使用 DoubleUnaryOperator 与函数
- java - 如何在 Appium 上使用 Jbehave 和 Junit 截屏失败?
- android - 我们如何在 android 中为 exoplayer 添加混响效果