如何将 python 变量传递给 azure databricks notebookbles 中的 shell 脚本?

How to pass a python variables to shell script in azure databricks notebookbles.?

如何将 python 变量从 %python cmd 传递到 shell 脚本 %sh,in azure databricks notebook..?

根据我的经验,对于您当前的情况,有两种解决方法可以将 Python 变量传递给 Bash 脚本。

这是我在笔记本中使用 Python3 的示例代码。

  1. 在 Azure Databricks Notebook 的同一 shell 会话中通过环境变量传递少量数据,如下所示。

    %python
    import os
    l = ['A', 'B', 'C', 'D']
    os.environ['LIST'] = ' '.join(l)
    print(os.getenv('LIST'))
    
    %%bash
    for i in $LIST
    do
      echo $i
    done
    

效果如下图

  1. 通过Azure Databricks Notebook当前路径下的文件传递大数据,如下。

    %python
    with open('varL.txt', 'w') as f:
      for elem in l:
        f.write(elem+'\n')
      f.close()  
    
    %%bash
    pwd
    ls -lh varL.txt
    echo '=======show content=========='
    cat varL.txt
    echo '=====result of script========'
    for i in $(cat varL.txt)
    do
      echo $i
    done
    

效果如下图