如何将变量从EMR群集传递到Jupyter Notebook %% local实例?

时间:2019-10-22 18:57:03

标签: python amazon-web-services jupyter-notebook jupyter amazon-emr

当我使用%%local在托管Jupyter笔记本实例上运行代码时,如何使用在EMR群集的Python实例中定义的变量?

具体地说,我想使用this question中所示的matplotlib,并显示使用spark.sql()生成的数据帧中的图形。使用%%sql使我可以轻松地使用%%local中的数据结果,但是我仍然需要将参数从EMR Python实例传递到%%sql

示例:

ln[1]: parameter = 'Hello parameter'

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

我不断收到未定义变量的错误。

1 个答案:

答案 0 :(得分:0)

我找到2个解决方法

  • 使用%%spark -o df将SQL查询结果返回到可与this answer一起使用的%%local的数据帧中
  • 在不使用任何%%魔术命令的情况下,完成所有查询的建立,执行和任何数据处理,就像通常一样,然后使用df.createOrReplaceTempView("temp_table_name")将最终数据写入数据库中的临时表。然后使用简单的查询通过%%sql -q -o dfSELECT * FROM temp_table_name
  • 检索最终数据