apache-spark-sql - 如何在 Spark SQL 中执行 ALL 函数
问题描述
我只想知道如何在 spark SQL 中执行以下 MySQL 查询。
SELECT first_name,last_name, job_id, salary
FROM employees
WHERE salary >
ALL (SELECT salary FROM employees WHERE job_id = 'SH_CLERK')
ORDER BY salary
特殊ALL()
功能。
解决方案
ALL 目前不适用于 SPARK SQL。许多人也不会将它与 SQL 一起使用,并且可以将其转换为其他方法。
在这种情况下,MAX 将获得相同的结果,如下所示:
import org.apache.spark.sql.expressions._
import org.apache.spark.sql.functions._
val df = sc.parallelize(Seq(
("John", "sh_clerk", 20000), ("Peter", "sh_clerk", 60000), ("Sally", "manager", 50000),
("Cabe", "programmer", 100000), ("Bob", "accountant", 65000)
)).toDF("first_name", "job_type", "salary")
df.createOrReplaceTempView("employees")
val res = spark.sql(""" SELECT first_name, job_type, salary
FROM employees
WHERE salary >
(SELECT MAX(salary) FROM employees WHERE job_type = 'sh_clerk')
ORDER BY salary""")
res.show(false)
返回:
+----------+----------+------+
|first_name|job_type |salary|
+----------+----------+------+
|Bob |accountant|65000 |
|Cabe |programmer|100000|
+----------+----------+------+
推荐阅读
- python - 如何为 SVM 机器学习算法转换字符串数据
- snowflake-cloud-data-platform - 雪花数据阅读器显示错误的仓库数量
- windows - npm i puppeteer 无法设置 Chromium r756035
- python - 我对 edx CS1301xII 问题 3.2.8 的回答有问题
- javascript - NGRX - 扩展运算符删除属性而不是reducer中的替换
- csv - 如何在 Jmeter 中一次使用 CSV Data Set Config 读取 csv 文件(而不是逐行)
- html - 如何导航到不同页面中的部分
- python-3.x - 如何绘制最佳参数对应的随机森林树
- java - 无法实现检测输入是否为整数的系统
- mongodb - 无法使用 mongocompass 连接到谷歌云实例 mongo