gpt4 book ai didi

azure - Pyspark - 创建我们的 python 包

转载 作者:行者123 更新时间:2023-12-03 06:10:10 25 4
gpt4 key购买 nike

在 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 函数笔记本,并在该笔记本中取出函数并将它们插入到包中,该包将分配给集群。也就是说,如果我需要添加另一个功能,我只需进入笔记本,插入该功能并单独运行笔记本,该功能将自动在包中可用。所以我也可以定义不同的集群并在不同的集群中使用这个包。

但我接受其他想法,我的这个想法更多是因为版本控制和传递到不同环境更容易,我认为。

有人有类似经历吗?

非常感谢!

最佳答案

仅使用 2 个笔记本,您无法创建包类型的功能,但您可以做的是将自定义函数与这 2 个笔记本一起写入某个 .py 文件并导入。

您可以按照以下步骤操作。首先,在 ETL 笔记本中添加以下代码块。

%%sh
mkdir -p /synfs/user_pkg/
echo '''
def calculate_square(x):
return x ** 2

def calculate_cube(x):
return x ** 3
''' > /synfs/user_pkg/custscript.py

在这里,我将这些函数添加到 synapse 文件系统中。然后将该路径添加到系统中,就可以导入这些函数了。下面是添加到系统路径的代码。

import sys
if "/synfs/user_pkg/" not in sys.path:
sys.path.append("/synfs/user_pkg/")
print("Done")
print("Import functions from 'custscript'")

ETL 笔记本中添加如下代码块。

enter image description here

然后从另一个笔记本仅调用一次。

%run ETL

from custscript import calculate_square
from custscript import calculate_cube

print(calculate_square(3))
print(calculate_cube(3))

输出:

enter image description here

如果你想插入任何其他函数,请将其添加到里面ETL 笔记本中的 echo 命令并运行一次。

关于azure - Pyspark - 创建我们的 python 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76876972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com