Reputation: 3896
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
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