栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在ipython笔记本中读取单元格内容

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在ipython笔记本中读取单元格内容

我认为您正在尝试以错误的方式解决问题。

首先是的,有可能以一种真正骇人听闻的方式获得相邻的markdown单元,这在无头笔记本执行中是行不通的。

您要执行的操作是使用IPython单元魔术,该魔术允许任意语法,只要该单元以2个百分号开头,后跟一个标识符即可。

通常,您需要SQL单元格。

您可以参考有关细胞魔术的文档,
或者我可以向您展示如何构建它:

from IPython.core.magic import  (    Magics, magics_class, cell_magic, line_magic)@magics_classclass StoreSQL(Magics):    def __init__(self, shell=None,  **kwargs):        super().__init__(shell=shell, **kwargs)        self._store = []        # inject our store in user availlable namespace under __mystore        # name        shell.user_ns['__mystore'] = self._store    @cell_magic    def sql(self, line, cell):        """store the cell in the store"""        self._store.append(cell)    @line_magic    def showsql(self, line):        """show all recorded statements"""        print(self._store)    ## use ipython load_ext mechanisme here if distributed    get_ipython().register_magics(StoreSQL)

现在,您可以在python单元格中使用SQL语法:

%%sql select * from foo Where QUX Bar

第二个单元格:

%%sqlInsert Cheezburger into Can_I_HAZ

检查我们执行了什么(3个破折号显示了输入/输出定界,您不必键入它们):

%showsql---['select * from foo Where QUX Bar', 'Insert Cheezburger into Can_I_HAZ']

在问题开始时您问了什么:

 mysql.query(__mystore[-1])

当然,这确实需要您以正确的顺序执行先前的单元格,没有什么阻止您使用

%%sql
语法来命名您的单元格,例如,如果
_store
dict
或更好的是您覆盖的类,则
__getattr__
类似于
__getitem__
使用点语法访问字段。这留给读者练习,或者最终看一下答案:

@cell_magicdef sql(self, line, cell):    """store the cell in the store"""    self._store[line.strip()] = cell

然后您可以使用像

%%sql A1set foo TO Bar where ID=9

然后在您的Python单元中

mysql.execute(__mystore.A1)

我也强烈建议看着凯瑟琳Develin
SqlMagic为IPython的,这笔记本要点在GitHub上,实况表演这一切事情。

在您似乎要说的评论中

pig
,没有什么可以阻止您拥有
%%pig
魔力的。也可以注入Javascript以启用SQL和PIG的正确语法高亮显示,但这超出了此问题的范围。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668317.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号