我想在 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/