python - 在databricks初始化脚本中定义环境变量

标签 python bash azure pyspark azure-databricks

我想在 Databricks 初始化脚本中定义一个环境变量,然后在 Pyspark 笔记本中读取它。 我写的是:

    dbutils.fs.put("/databricks/scripts/initscript.sh","""
#!/bin/bash
export env="dev"
pip install pretty-html-table==0.9.14
""", True)

pyspark代码:

import os
environment=os.getenv("env")

它给出:

TypeError: can only concatenate str (not "NoneType") to str

但是Pyspark笔记本无法正确读取环境变量

知道如何解决这个问题吗?

最佳答案

您不能使用普通的导出,因为这样该变量将仅可用于 init 脚本子进程。

相反,请在初始化脚本中使用以下行来全局设置环境变量:

echo AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_HERE >> /etc/environment

这将写入集群的环境文件,该文件可以从集群上的任何子进程读取。

如果您需要管理员权限来编辑目标文件,您可以使用以下命令:

echo AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_HERE | sudo tee -a /etc/environment

关于python - 在databricks初始化脚本中定义环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72089673/

相关文章:

c# - 使用Web API作为SignalR服务器并从Windows服务使用它

ios - 确认命令未找到错误

linux - 如何将函数名称显示到函数本身

javascript - Cypress 覆盖 Docker 容器中的 baseUrl 不起作用

python - 使用回溯存储和打印异常?

linux - 大于/小于中断 bash 脚本的多个 -a

c# - 如何更新 DocumentDb 文档?

python - 在 Pandas 的数据框中聚合列表

python - 将列表映射到 1 和 0

python - 列表理解测试中的变量被视为未在 python3 的 exec 中定义