连接到livy的火花在Jupyter中工作得很好,以下是火花魔法:
%%spark -c sql
select * from some_table
现在我如何使用字符串变量来查询表?以下不起作用:
query = 'select * from some_table'
下一个细胞:
%%spark -c sql
query
以下工作也不起作用:
%%spark -c sql
'select * from some_table'
有任何想法吗?是否可以将字符串变量的内容“回显”到单元格中?
好像我找到了解决方案。有一个函数可以将字符串转换为单元魔术命令:
%%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 dataframe df中。