当前位置: 首页 > 知识库问答 >
问题:

在select之后启动sql where子句

尹俊雅
2023-03-14
  Seq(("b", 2), ("d", 4), ("a", 1), ("c", 3))
  .toDF("letter", "number")
  .select($"letter")
  .where($"number" > 1)
  .show
val letters =
  Seq(("b", 2), ("d", 4), ("a", 1), ("c", 3))
  .toDF("letter", "number")
  .select($"letter")

letters
  .where($"number" > 1)
  .show

为什么可以在where子句中包含$“number”而只保留字母?

编辑1这里是解释:

letters.explain(true)
== Parsed Logical Plan ==
'Project [unresolvedalias('letter, None)]
+- Project [_1#76942 AS letter#76955, _2#76943 AS number#76956]
   +- LocalRelation [_1#76942, _2#76943]

== Analyzed Logical Plan ==
letter: string
Project [letter#76955]
+- Project [_1#76942 AS letter#76955, _2#76943 AS number#76956]
   +- LocalRelation [_1#76942, _2#76943]

== Optimized Logical Plan ==
LocalRelation [letter#76955]

== Physical Plan ==
LocalTableScan [letter#76955]

共有1个答案

呼延震博
2023-03-14

Spark方法所固有的,操作/作业中的代码融合,阶段中的代码融合-->狭义转换。

Spark会优化代码。很多这样的例子。

val rdd1 = ...
val rdd2 = rdd1.map(...
val rdd3 = rdd2.map(...

在这个简单的示例中,当操作发生时,由于优化和融合代码,可能甚至没有rdd2和rdd1。

 类似资料:
  • 我想在play应用程序(使用slick)启动之前,从docker compose文件(postgres和kafka实例)启动testcontainers。我想要这个,这样我就可以写一个端到端的测试。我似乎不明白这是怎么可能的。 Scala版本2.12.10 Testcontainer版本0.35.0 Play slick版本5.0.0 当我在没有“TestFunSpec”的情况下执行测试时,doc

  • 在Tomcat中多次运行应用程序后,我已经耗尽了PermGen内存(我怀疑是quartz servlet的问题),Java抛出了一个OutofMemoryError。通常,我只是不时地重启tomcat,但自从发生这种情况后,我无法启动/重启。Tomcat在我们的qa环境中运行,通常通过sbin文件夹启动/停止/重新启动。我尝试使用替代方案catalina.sh run启动tomcat,但它表示端口

  • 问题内容: 我惊讶地发现以下作品: 由于我认为HAVING子句严格在SELECT子句之前进行处理。这实际上是我的错误假设吗?还是这是SAS的SQL实现所特有的? 问题答案: 严格来说,如果我没有记错的话,SQL标准的define子句要在该子句之前进行处理。因此,不能在in子句中使用SELECT中定义的别名。 这是: 因此,在大多数SQL版本中,该查询将产生错误。我知道MySQL是一个例外,它允许与

  • 美团 双非硕鼠的金十一,大厂捕捞终于沉底捞我了,感觉答得中规中矩。 开篇先是是否愿意转java 一面 11.22 (50min) 1、自我介绍 2、实习 3、项目介绍 4、如何进行单机存储 5、大流量在同一台机器怎么办 6、一致性哈希的key怎么确定的 7、如何备份 8、适用于的场景 9、现有的分布式存储 10、项目介绍 11、大语言模型训练了么,语料有多少 12、AI模型的了解 13、IO多路复

  • 启动之后,您将被提示去完成基本系统的设置,然后选择您希望安装的额外软件包。 指导您完成此过程的应用程序称为 base-config。它的概念类似于 debian-installer 的第一阶段。事实上, base-config 由一些特殊的元件组成,每个元件完成一项设置任务, 包括 "在后台隐藏菜单" 并使用同样的导航系统。 如果您系统重新执行 base-config 在安装之后的某时,作为 ro

  • 启动之后,您将被提示去完成基本系统的设置,然后选择您希望安装的额外软件包。 指导您完成此过程的应用程序称为 base-config。它的概念类似于 debian-installer 的第一阶段。事实上, base-config 由一些特殊的元件组成,每个元件完成一项设置任务, 包括 “在后台隐藏菜单” 并使用同样的导航系统。 如果您希望在完成安装之后重新运行 base-config,请以 root