Как передать переменную из кластера EMR в локальный экземпляр Jupyter Notebook %%? - PullRequest
0 голосов
/ 22 октября 2019

Как использовать переменную, определенную в экземпляре Python кластера EMR, когда я запускаю код на управляемом экземпляре ноутбука Jupyter, используя %%local?

В частности, я хочу использовать matplotlib, как показано в thisвопрос и отображение графика из кадра данных, созданного с использованием spark.sql(). Использование %%sql позволяет мне легко использовать результаты данных в %%local, но мне все равно необходимо передать параметры в %%sql из экземпляра EMR Python

Пример:

ln[1]: parameter = 'Hello parameter'

ln[2]: %%local
       print(parameter)

Iпостоянно получаю ошибку, что моя переменная не определена.

1 Ответ

0 голосов
/ 12 ноября 2019

Я нашел 2 обходных пути

  • Используйте %%spark -o df для возврата результатов SQL-запроса на фрейм данных, который можно использовать с %%local, как в этот ответ
  • Выполните все запросы, сборку, выполнение и любую обработку данных, как обычно, без использования магических команд %%, затем запишите окончательные данные во временную таблицу в моей базе данных, используя df.createOrReplaceTempView("temp_table_name"). Затем используйте простой запрос для получения окончательных данных с помощью %%sql -q -o df и SELECT * FROM temp_table_name
...