外部输入 '\' 需要 {')', ','}。查询在 sql notebook cell 中工作但不在 databricks connect 中工作
Extraneous input '\' expecting {')', ','}. Query working in sql notebook cell but not in databricks connect
执行以下查询时
SELECT * FROM companies JOIN employments on companies.company_normalized LIKE CONCAT('%',
replace(employments.displayname_normalized, '\', ''), '%') or employments.displayname_normalized LIKE CONCAT(
'%', replace(companies.company_normalized,'\', ''), '%')
它在数据块 sql 笔记本单元上工作正常。
然而,当尝试使用 spark sql 执行器 运行 相同的查询时,即 spark.sql(query),这个错误说:
替换子句中的无关输入 '' 需要 {')', ','}。
有解决办法吗?
如果您使用正则表达式,则需要一个反斜杠:
spark.sql("SELECT * FROM companies JOIN employments on companies.company_normalized LIKE CONCAT('%',
replace(employments.displayname_normalized, '\', ''), '%') or employments.displayname_normalized LIKE CONCAT(
'%', replace(companies.company_normalized,'\', ''), '%')")
或者您需要转义斜杠,那么您需要使用“\\\\”进行双重转义:
spark.sql("SELECT * FROM companies JOIN employments on companies.company_normalized LIKE CONCAT('%',
replace(employments.displayname_normalized, '\\', ''), '%') or employments.displayname_normalized LIKE CONCAT(
'%', replace(companies.company_normalized,'\\', ''), '%')")
执行以下查询时
SELECT * FROM companies JOIN employments on companies.company_normalized LIKE CONCAT('%',
replace(employments.displayname_normalized, '\', ''), '%') or employments.displayname_normalized LIKE CONCAT(
'%', replace(companies.company_normalized,'\', ''), '%')
它在数据块 sql 笔记本单元上工作正常。
然而,当尝试使用 spark sql 执行器 运行 相同的查询时,即 spark.sql(query),这个错误说: 替换子句中的无关输入 '' 需要 {')', ','}。
有解决办法吗?
如果您使用正则表达式,则需要一个反斜杠:
spark.sql("SELECT * FROM companies JOIN employments on companies.company_normalized LIKE CONCAT('%',
replace(employments.displayname_normalized, '\', ''), '%') or employments.displayname_normalized LIKE CONCAT(
'%', replace(companies.company_normalized,'\', ''), '%')")
或者您需要转义斜杠,那么您需要使用“\\\\”进行双重转义:
spark.sql("SELECT * FROM companies JOIN employments on companies.company_normalized LIKE CONCAT('%',
replace(employments.displayname_normalized, '\\', ''), '%') or employments.displayname_normalized LIKE CONCAT(
'%', replace(companies.company_normalized,'\\', ''), '%')")