如何将变量从 EMR 集群传递到 Jupyter Notebook %%local 实例?
Posted
技术标签:
【中文标题】如何将变量从 EMR 集群传递到 Jupyter Notebook %%local 实例?【英文标题】:How to Pass Variable from EMR Cluster to Jupyter Notebook %%local Instance? 【发布时间】:2019-10-22 18:57:03 【问题描述】:当我使用 %%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】:我找到了 2 个解决方法
使用%%spark -o df
将SQL 查询结果返回到可与%%local
一起使用的数据帧,如this answer
在不使用任何%%
魔术命令的情况下,像平常一样进行所有查询构建、执行和任何数据处理,然后使用df.createOrReplaceTempView("temp_table_name")
将最终数据写入我的数据库中的临时表。然后使用一个简单的查询来检索带有%%sql -q -o df
和SELECT * FROM temp_table_name
的最终数据
【讨论】:
以上是关于如何将变量从 EMR 集群传递到 Jupyter Notebook %%local 实例?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 s3 数据从一个 EMR 集群读取到另一个 EMR 集群?
设置 Jupyter Pyspark 在 EC2 和 EMR 之间工作
无法访问 EMR 集群 jupyter notebook 中的 pyspark
toPandas() 在 Jupyter iPython Notebook 上工作,但提交失败 - AWS EMR