在Synpase笔记本中,我有一个单独的笔记本,其中包含了我需要在另一个笔记本中运行的所有功能。
例如,如果我创建一个新的notebook,我将在第一个命令中%run ETL Functions
使用所有功能。
例如,在ETL笔记本中,我可以使用以下函数:
def calculate_square(x):
return x ** 2
我想创建一个包并插入例如这个函数,然后我可以这样做:
from test_package import functions
result = functions.calculate_square(5)
print(result) # Output: 25
这样我就不需要在每次需要使用特定函数时都运行ETL函数笔记本。
我的想法,但我不知道是否可能,是保留ETL函数笔记本,并在该笔记本中获取函数并将其插入到包中,然后将此包分配给集群。也就是说,如果我需要添加另一个功能,我只需要去笔记本,插入功能并单独运行笔记本,功能将自动在包中可用。所以我也可以定义不同的集群,并在不同的集群中使用这个包。
但我也接受其他的想法,我的这个想法更多的是因为版本控制和传递到不同的环境更容易,我想。
有人有类似的经历吗?
多谢了!
1条答案
按热度按时间rlcwz9us1#
如果只使用两个notebook,你不能创建包类型的功能,但你可以做的是将你的自定义函数写入一些
.py
文件沿着这两个notebook并导入它。你可以按照下面的步骤来做。首先,在ETLnotebook中添加以下代码块。
这里,我在synapse文件系统中添加这些函数。然后通过将此路径添加到系统,您可以导入这些函数。下面是添加到系统路径的代码。
在
ETL
notebook中添加以下代码块。然后只从另一个笔记本调用它一次。
和
输出量:
如果你想插入任何其他函数,在ETLnotebook中添加
echo
命令,然后运行一次。