Как обработать исключение AnalysisEx для Spark SQL? - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь выполнить список запросов в Spark, но если запрос не выполняется правильно, Spark выдает мне следующую ошибку: AnalysisException: «ALTER TABLE CHANGE COLUMN COLUMN не поддерживается для изменения ...

Это часть моего кода (я использую Python и Spark SQL для блоков данных):

for index, row in df_tables.iterrows():
  query = row["query"]
  print ("Executing query: ")
  try:
      spark.sql(query)
      print ("Query executed")
  except (ValueError, RuntimeError, TypeError, NameError):
      print("Unable to process your query dude!!")
  else:
      #do another thing

Есть ли способ перехватить это исключение? ValueError, RuntimeError, TypeError, NameError, похоже, не работает. На веб-странице Spark не так много информации об этом.

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

Я думаю, это зависит от ваших требований. Если вы выполняете полный рабочий процесс для этого запроса и хотите, чтобы он проходил, ваш код будет работать нормально. Но допустим, что вы хотите, чтобы ваш рабочий процесс или линия данных не работали, тогда вы должны выйти из этого блока except.

Точное исключение, которое вы можете не получить, но вы определенно можете получить обзор, используя

except Exception as x:
  print(str(x)) 

Вы можете использовать модуль регистрации для добавления дополнительной информации в журналы для дальнейшего изучения.

0 голосов
/ 04 октября 2019

Вы можете изменить оператор try, за исключением следующего:

try:
  spark.sql(query)
  print ("Query executed")
except Exception as x:
  print("Unable to process your query dude!!" + \
        "\n" + "ERROR : " + str(x)) 
...