表达式 : Select `(column1|column2|column3)?+.+` from Table in SQL 是什么意思?

What does the expression : Select `(column1|column2|column3)?+.+` from Table in SQL means?

我正在尝试将 SQL 代码转换为 Pyspark SQL。 从 table 中选择列时,Select 语句包含以下内容:

Select a.`(column1|column2|column3)?+.+`,trim(column c)  from Table a;

我想了解一下

a.`(column1|column2|column3)?+.+`

表达式解析为及其实际含义是什么?如何在将 sql 转换为 pyspark 时解决此问题?

这是一种使用正则表达式选择某些列名称的方法。该正则表达式匹配(并排除)列 column1column2column3.

Spark 相当于 Hive 的Quoted Identifiers. See also Spark's documentation

请注意,要启用此行为,首先需要 运行 以下命令:

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