簡體   English   中英

Spark-SQL是否使用正則表達式規范支持Hive選擇除列之外的所有查詢

[英]Does Spark-SQL supports Hive Select All Query with Except Columns using regex specification

我正在嘗試使用pyspark包裝器使用SPARK-SQL實現此功能。我遇到了此錯誤

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

這是我的查詢。基本上是在嘗試排除列“ qtr”。

select `(qtr)?+.+` from project.table; 

使用以下屬性,在蜂巢/直線上工作完美

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 RegEx。 我已經在Spark 2.3中測試了此解決方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM