Я выполняю несколько запросов impala в сценарии bash, сохраняю их в переменные, распечатываю результаты в терминале и, кроме того, пытаюсь сохранить выходные таблицы, хранящиеся в переменных, в файле .txt, который затем может быть каким-то образом проанализирован в python:
a=$(impala-shell -q "SELECT 1;")
b=$(impala-shell -q "SELECT 2;")
echo -e "print out result of ${a}, ${b}"
, который выводит таблицу наподобие:
+---+
| 1 |
+---+
| 1 |
+---+
+---+
| 2 |
+---+
| 2 |
+---+
Я пробовал сохранять таблицы в формате, который может быть загружен в python как диктовку с json .load:
import json
with open('impala_results') as f:
data = json.load(f)
, выполнив что-то вроде:
echo -e "{\"a\": $a, \"b\": $b}" > /path/to/impala_results
, чтобы сохранить результаты, но я сталкиваюсь с ошибками, что бы я ни пытался, думая, что это может быть проблемой кодировки Unicode.
ValueError: Invalid control character at: line 1 column 152 (char 151)
ValueError: No JSON object could be decoded
Я имею в виду, я не уверен, что это обязательно лучший способ сделать что-то, но было бы легче разобрать таблицы, если бы их можно было загружать как отдельные и доступные объекты в пределах dict. Вероятно, есть другой способ сделать это, если да, пожалуйста, дайте мне знать.
Я действительно хочу избежать сохранения более 20 файлов .csv.
Спасибо