首页 > 解决方案 > spark magic - 以字符串形式输入 sql 上下文

问题描述

在 Jupyter 中通过 livy 连接到 spark 效果很好,下面的 spark 魔法也是如此:

%%spark -c sql
select * from some_table

现在如何使用字符串变量来查询表?以下不起作用:

query = 'select * from some_table'

下一个单元格:

%%spark -c sql
query

以下操作也不起作用:

%%spark -c sql
'select * from some_table'

有任何想法吗?是否可以将字符串变量的内容“回显”到单元格中?

标签: python-3.xapache-sparkpysparkjupyter-notebook

解决方案


好像我找到了解决方案。有一个函数可以将字符串转换为单元格魔术命令:

%%local

from IPython import get_ipython
ipython = get_ipython()

line = '-c sql -o df'
query = 'select * from some_table'
ipython.run_cell_magic(magic_name='spark', line=line, cell=query)

在此之后,查询位于 pandas 数据帧 df 中。


推荐阅读