Поддерживает ли Spark-SQL запрос Hive Select All с исключением столбцов, используя спецификацию regex - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь добиться этой функциональности , используя SPARK-SQL, используя оболочку pyspark. Я столкнулся с этой ошибкой

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

Это мой запрос .. В основном пытаюсь исключитьстолбец "QTR".

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

Отлично работает в улье / билайне, используя свойство ниже

set hive.support.quoted.identifiers=none;

Любая помощь приветствуется?

1 Ответ

0 голосов
/ 23 ноября 2018

Spark позволяет использовать RegEx в качестве имени столбца в выражении SELECT.По умолчанию это поведение отключено.Чтобы включить его, нам нужно установить для свойства ниже значение true перед выполнением запроса со столбцами RegEx.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...