Как выполнить ВСЕ функции в спарк SQL - PullRequest
0 голосов
/ 18 октября 2018

Я просто хочу знать, как выполнить следующий запрос MySQL в spark SQL.

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() функция.

1 Ответ

0 голосов
/ 19 октября 2018

ВСЕ в настоящее время недоступно с 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|
+----------+----------+------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...