В настоящее время я пытаюсь использовать переменную сценария оболочки в python.
Ниже приведен код.
%sh
export MY_VAR = "my_value"
echo $MY_VAR
%python
import os
my_var = os.environ.get("MY_VAR")
print(my_var)
Скриншот кода
Я получаю значение в сценарии оболочки, но когда я пытаюсь получить значение с помощью python os.environ.get("MY_VAR")
, я получаю как None
Может ли кто-нибудь помочь мне решить вышеуказанную проблему.
Код на разных языках выполняется в разных контекстах, вы не можете совместно использовать переменные среды между оболочкой и Python или переменные между Python и Scala и т. д.
Вы можете использовать файловую систему для передачи данных.
%sh
echo "my_value" >/tmp/foo
%python
from pathlib import Path
my_var = Path("/tmp/foo").read_text()
print(my_var)
Некоторые другие идеи в этой статье: https://medium.com/@robin.loche/how-to-work-with-multiple-languages-on-databricks-e22dea9f8c7
Я согласен с вами
Вы не показываете, как вы вызываете свою программу Python из сценария оболочки.