AlexV
AlexV

Reputation: 3896

Delta Lake MERGE INTO statement

I'm trying to run Delta Lake MERGE INTO

MERGE INTO sessions
USING updates
ON sessions.sessionId = updates.sessionId
WHEN MATCHED THEN UPDATE *
WHEN NOT MATCHED THEN INSERT *

I'm getting an SQL error

ParseException: mismatched input 'MERGE' expecting {'(', 'SELECT', 'FROM', 'ADD', 'DESC', 'WITH', 'VALUES', 'CREATE', 'TABLE', 'INSERT', 'DELETE', 'DESCRIBE', 'EXPLAIN', 'SHOW', 'USE', 'DROP', 'ALTER', 'MAP', 'SET', 'RESET', 'START', 'COMMIT', 'ROLLBACK', 'REDUCE', 'REFRESH', 'CLEAR', 'CACHE', 'UNCACHE', 'DFS', 'TRUNCATE', 'ANALYZE', 'LIST', 'REVOKE', 'GRANT', 'LOCK', 'UNLOCK', 'MSCK', 'EXPORT', 'IMPORT', 'LOAD'}(line 2, pos 0)
== SQL ==
MERGE INTO sessions
^^^
USING updates
ON sessions.sessionId = updates.sessionId
WHEN MATCHED THEN UPDATE *
WHEN NOT MATCHED THEN INSERT *
"

I am using io.delta:delta-core_2.11:0.6.1 What am I doing wrong?

Thanks

Upvotes: 0

Views: 1160

Answers (1)

zsxwing
zsxwing

Reputation: 20836

The merge SQL support is added in Delta Lake 0.7.0. You also need to upgrade your Apache Spark to 3.0.0 and enable the integration with Apache Spark DataSourceV2 and Catalog APIs in order to use the new SQL support in Delta Lake 0.7.0. Please check instructions in the Delta Lake docs.

Upvotes: 2

Related Questions