当python使用三引号嵌套双引号时需要转义,不然可能出现一些意想不到的情况,比如
sql="""
select * from table where GET_JSON_OBJECT(regexp_replace(regexp_replace(param, '2:', '"2":'), '4:', '"4":'), '$.XXX') IN(1)
"""
ht.exec_sql(sql)
当使用pyspark执行上面语句时不会报错,但是结果总是不对,应该在双引号那里加上两个反斜杠转义
sql="""
select * from table where GET_JSON_OBJECT(regexp_replace(regexp_replace(param, '2:', '\\"2\\":'), '4:', '\\"4\\":'), '$.XXX') IN(1)
"""
ht.exec_sql(sql)