pyspark 在数据块初始化脚本中定义环境变量

anauzrmj  于 2023-08-02  发布在  Spark
关注(0)|答案(1)|浏览(111)

我想在Databricks init脚本中定义一个环境变量,然后在Pyspark notebook中读取它。我这样写道:

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 notebook无法正确读取环境变量
有办法解决吗?

gt0wga4j

gt0wga4j1#

您不能使用普通的export,因为该变量只能用于init脚本子进程。
相反,请在init脚本中使用以下行来全局设置环境变量:

echo AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_HERE >> /etc/environment

字符串
这将写入集群的environment文件,该文件从集群上的任何子进程读取。
如果您需要管理员权限来编辑目标文件,您可以使用以下命令:

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

相关问题