2016-07-10 3 views
0

Есть ли способ удалить несколько таблиц с помощью регулярного выражения в SparkSQL?Удалить таблицы по регулярному выражению

Я хотел бы сделать что-то вроде этого:

sqlContext.sql("DROP TABLE IF EXISTS job*") 

Где job* будет стоять для всех таблиц, начиная с job.

+0

Я не знаком с искрой, но если он следует в ANSI SQL шаблон (который, скорее всего, это делают) нет такой команды. Лучшее, что вы можете сделать, это перечислить все таблицы на основе информационной схемы (не знаете, как она вызвана искру) и удалить один за другим в процедуре, подобной инструкции –

ответ

0

Из того, что я нашел об этом синтаксисе SparkSQL, похоже, что для этого вам не понадобится регулярное выражение.
Только ваш типичный синтаксис SQL LIKE.

Не могли бы вы попробовать:

for tblName in sqlContext.tables().filter("tableName LIKE 'job%'").collect(): 
    sqlContext.sql("DROP TABLE IF EXISTS " + tblName) 
Смежные вопросы