我是新的突触,但一个长期的Python用户。我有一个包含SQL查询的Synapse Notebook。我将该笔记本中的文本字段记录在单元格中,如下所示:
SELECT
Field1 --| Some description of field 1
Field2 --| Some description of field 2
FieldN --| Some description of field n
FROM SomeTable
我希望能够将notebook作为一个纯文本字符串读入另一个notebook,使用pyspark中的re包来解析sql块,并将文档作为字段和描述的表格输出。我想不通的是:* 我如何从我的工作区中读取笔记本作为字符串到另一个notbook?***
假设我在一个名为Gold的目录中有一个名为MyNotebook的笔记本。在本地机器上的python中,我会写这样的东西:
with open('Gold/MyNotebook') as f:
contents = f.readlines()
但在synapse中,这会导致一个错误:
File ~/cluster-env/env/lib/python3.10/site-packages/IPython/core/interactiveshell.py:282, in _modified_open(file, *args, **kwargs)
275 if file in {0, 1, 2}:
276 raise ValueError(
277 f"IPython won't let you open fd={file} by default "
278 "as it is likely to crash IPython. If you know what you are doing, "
279 "you can use builtins' open."
280 )
--> 282 return io_open(file, *args, **kwargs)
FileNotFoundError: [Errno 2] No such file or directory: 'Gold/MyNotebook'
1条答案
按热度按时间lh80um4z1#
正如@user238607所说,你不能直接在工作区内阅读笔记本的内容。他还给出了使用
%notebook
导出notebook并解析它。但是azure synapse不支持这个命令,所以你可以把你的笔记本导出到.html
,然后上传到adls账户。下面是导出并上传到adls帐户。
现在在synapse上读一下。
我使用
fsspec
来读取和解析它。下面是代码。
下面是解析的查询。
现在创建表。
输出量: