如何在 DSX 中提供用户 functions/modules
How to supply user functions/modules in DSX
我在单独的 python 脚本中定义了一些辅助实用程序。我想让脚本对 DSX notebook 可用,这样我就可以在单元格中调用它们,但我不想将脚本直接放入单元格中。
有哪些实现方法?
如果您同意让您的代码 public 仅在 public git 存储库中可用,您可以将您的代码转换为 python 包并保存在 git 中心。请在此处查看示例包:A simple Hello World setuptools package and installing it with pip。
您可以使用 github 直接安装它:
!pip install --user git+https://github.com/public_account/public_repo
私人 git 集线器存储库
也应该可以使用与上述方法类似的私有 github 存储库,只需几个额外的设置步骤和不同的 url pip 格式。例如
在 dsx 上生成一个 ssh 密钥
! ssh-keygen -b 2048 -t rsa -f ~/.ssh/id_rsa -q -N ""
将以下命令的输出添加到您的 github 帐户设置:: SSH 和 GPG 密钥
! cat ~/.ssh/id_rsa.pub
接下来将 github ssh 密钥添加到 dsx:
! ssh-keyscan github.com >> ~/.ssh/known_hosts
重要提示: 您应该手动验证导入的 git 集线器主机密钥是否真实。您可以使用以下命令查看导入的密钥:
! cat ~/.ssh/known_hosts
您现在可以使用 pip 安装:
! pip install --user git+ssh://git@github.com/private_account/private_repo
注意! 上述方法存在一些安全注意事项。 IE。任何有权访问您执行上述命令的 spark 服务的人都将能够访问 git 私有存储库。
注意:
理想情况下,在未来,我希望看到 dsx 支持编辑项目中的所有文件并将所有项目文件提交到 github,例如
一种选择是使用以下 API 调用从客户端计算机将您的包上传到您的 spark 帐户:
curl \
-X PUT \
-k \
-u ${tenant_id}:${tenant_secret} \
-H "X-Spark-service-instance-id: ${instance_id}" \
--data-binary "@path_to_local_file" \
${cluster_master_url}/tenant/data/destination_file_name
可以通过登录到Bluemix 控制台并导航到Service Credentials 来获取上述变量。或者,您可以使用命令行 cf
工具来检索此信息。此 提供了有关 cf
命令行方法的更多信息。
将你的包上传到spark服务后,你可以使用:
! pip install --user ${HOME}/data/destination_file_name
此答案归功于 Roland Weber。
我在单独的 python 脚本中定义了一些辅助实用程序。我想让脚本对 DSX notebook 可用,这样我就可以在单元格中调用它们,但我不想将脚本直接放入单元格中。
有哪些实现方法?
如果您同意让您的代码 public 仅在 public git 存储库中可用,您可以将您的代码转换为 python 包并保存在 git 中心。请在此处查看示例包:A simple Hello World setuptools package and installing it with pip。
您可以使用 github 直接安装它:
!pip install --user git+https://github.com/public_account/public_repo
私人 git 集线器存储库
也应该可以使用与上述方法类似的私有 github 存储库,只需几个额外的设置步骤和不同的 url pip 格式。例如
在 dsx 上生成一个 ssh 密钥
! ssh-keygen -b 2048 -t rsa -f ~/.ssh/id_rsa -q -N ""
将以下命令的输出添加到您的 github 帐户设置:: SSH 和 GPG 密钥
! cat ~/.ssh/id_rsa.pub
接下来将 github ssh 密钥添加到 dsx:
! ssh-keyscan github.com >> ~/.ssh/known_hosts
重要提示: 您应该手动验证导入的 git 集线器主机密钥是否真实。您可以使用以下命令查看导入的密钥:
! cat ~/.ssh/known_hosts
您现在可以使用 pip 安装:
! pip install --user git+ssh://git@github.com/private_account/private_repo
注意! 上述方法存在一些安全注意事项。 IE。任何有权访问您执行上述命令的 spark 服务的人都将能够访问 git 私有存储库。
注意:
理想情况下,在未来,我希望看到 dsx 支持编辑项目中的所有文件并将所有项目文件提交到 github,例如
一种选择是使用以下 API 调用从客户端计算机将您的包上传到您的 spark 帐户:
curl \
-X PUT \
-k \
-u ${tenant_id}:${tenant_secret} \
-H "X-Spark-service-instance-id: ${instance_id}" \
--data-binary "@path_to_local_file" \
${cluster_master_url}/tenant/data/destination_file_name
可以通过登录到Bluemix 控制台并导航到Service Credentials 来获取上述变量。或者,您可以使用命令行 cf
工具来检索此信息。此 cf
命令行方法的更多信息。
将你的包上传到spark服务后,你可以使用:
! pip install --user ${HOME}/data/destination_file_name
此答案归功于 Roland Weber。