Как создать временный вид в Spark SQL с помощью CTE? - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь создать временное представление в Spark SQL, используя оператор с:

create temporary view cars as (
    with models as (
       select 'abc' as model
    )
    select model from models
)

Но эта ошибка выдается:

error in SQL statement: ParseException: 
mismatched input 'with' expecting {'(', 'SELECT', 'FROM', 'DESC', 'VALUES', 'TABLE', 'INSERT', 'DESCRIBE', 'MAP', 'MERGE', 'UPDATE', 'REDUCE'}(line 2, pos 8)

== SQL ==
create temporary view cars as (
        with models as (
--------^^^
           select 'abc' as model
        )
        select model from models
    )

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Снятие скобок после первой как заставляет его работать:

create temporary view cars as 
with models as (
   select 'abc' as model
)
select model from models
0 голосов
/ 31 марта 2020

Вышеуказанное выражение Spark SQL синтаксически неверно. Следующий синтаксис используется для создания любого представления в Spark SQL.

CREATE [OR REPLACE] [[GLOBAL] TEMPORARY] VIEW [db_name.]view_name
  [(col_name1 [COMMENT col_comment1], ...)]
  [COMMENT table_comment]
  [TBLPROPERTIES (key1=val1, key2=val2, ...)]
    AS select_statement

Исправьте синтаксис в соответствии с указанным выше DDL.

...