为什么SparkSession.sql(“ set hive.support.quoted.identifiers = None”)不起作用?

时间:2019-07-25 11:59:01

标签: apache-spark hive pyspark

我想在SparkSession.sql中使用正则表达式,但是无论我是否使用都无效:

SparkSession.builder.enableHiveSupport().config("hive.support.quoted.identifiers", None)

SparkSession.sql("set hive.support.quoted.identifiers=None")

请告诉我该怎么做。

代码:

ss = (pyspark.sql.SparkSession
      .builder
      .enableHiveSupport()          
      .config("hive.support.quoted.identifiers", None)
      .getOrCreate())                                         
#ss.sql("set hive.support.quoted.identifiers=None")
ss.sql("SELECT `(col)?+.+` FROM table")

程序结果:

pyspark.sql.utils.AnalysisException: "cannot resolve '`(col)?+.+`' given input columns: ... ...

1 个答案:

答案 0 :(得分:1)

您可以尝试启用RegEx吗?默认情况下,此行为是禁用的,因此在使用RegEx列运行查询之前,需要将以下属性设置为true。

spark.sql("SET spark.sql.parser.quotedRegexColumnNames=true")