如何将python变量传递给Azure Databricks Notebookbles中的Shell脚本?

时间:2019-02-13 04:37:57

标签: python azure variables databricks

如何在azure databricks笔记本中将%python cmd中的python变量传递给外壳脚本%sh。?

notebook example

1 个答案:

答案 0 :(得分:1)

根据我的经验,有两种解决方法可以针对当前情况将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
    

如下图所示。

enter image description here

  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
    

如下图所示。

enter image description here