作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力实现this functionality使用 SPARK-SQL 使用 pyspark 包装器。我遇到了这个错误
pyspark.sql.utils.AnalysisException: u"cannot resolve '```(qtr)?+.+```'
given input columns:
这是我的查询..基本上试图排除“qtr”列。
select `(qtr)?+.+` from project.table;
使用以下属性在 hive/beeline 中工作得非常好
set hive.support.quoted.identifiers=none;
感谢您的帮助?
最佳答案
Spark 允许 RegEx 作为 SELECT 表达式中的列名称。默认情况下,此行为被禁用。要启用它,我们需要在使用 RegEx 列运行查询之前将以下属性设置为 true
。
spark.sql("SET spark.sql.parser.quotedRegexColumnNames=true").show(false)
设置此属性后,我们可以使用正则表达式选择表达式,如下所示。
spark.sql("SELECT `(.*time.*)+.+` FROM test.orders limit 2""").show(false)
注意:这里允许任何 java 有效的正则表达式。我已经在 Spark 2.3 中测试了这个解决方案
关于regex - Spark-SQL 是否支持使用正则表达式规范的 Hive Select All Query with except Columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52526768/
我是一名优秀的程序员,十分优秀!