在 spark sql 中评论

问题描述 投票:0回答:3

如何在 spark-sql 中评论多行

%sql

/*
    select * from database.tablename 
    where condition
*/

给我以下错误

Error in SQL statement: 

    ParseException: 
    mismatched input '/' expecting {'(', 'CONVERT', 'COPY', 'OPTIMIZE', 'ADD', 'ALTER', 'ANALYZE', 'CACHE', 'CLEAR', 'COMMENT', 'COMMIT', 'CREATE', 'DELETE', 'DESC', 'DESCRIBE', 'DFS', 'DROP', 'EXPLAIN', 'EXPORT', 'FROM', 'GRANT', 'IMPORT', 'INSERT', 'LIST', 'LOAD', 'LOCK', 'MAP', 'MERGE', 'MSCK', 'REDUCE', 'REFRESH', 'REPLACE', 'RESET', 'REVOKE', 'ROLLBACK', 'SELECT', 'SET', 'SHOW', 'START', 'TABLE', 'TRUNCATE', 'UNCACHE', 'UNLOCK', 'UPDATE', 'USE', 'VALUES', 'WITH'}(line 1, pos 0)
sql apache-spark apache-spark-sql databricks azure-databricks
3个回答
3
投票

对于单行注释,我们应该使用

--
,对于多行注释,我们应该使用
/* comments  
*/
.

实际上评论在你的情况下有效,问题是 - spark 在查找 sql 命令但你没有指定任何命令之后忽略这些评论。

数据块的截图

下面的代码会抛出错误。

  spark.sql(
    """
      | /* comment..1
      | comment..2 */
      |""")
    .show()

但这很完美,因为 spark 得到了实际的 sql 命令来处理。

  spark.sql(
    """
      | /* comment..1
      | comment..2 */
      | select current_date
      |""")
    .show()

0
投票

无法测试:

 /* This should be a comment
     over multiple lines */

编辑: 如果这不起作用,请尝试:

/** Definitely a multilined
*    comment 
*/

0
投票

试试这个:

%%sql

SELECT 1
/*
your peace of code here

*/;

重点是分号

问候

© www.soinside.com 2019 - 2024. All rights reserved.