在databricks中导入python依赖项(无法导入模块)

时间:2019-12-22 04:10:55

标签: python apache-spark pyspark databricks

我有一个示例项目mypackg,其结构如下:

- mypackg
    * appcode
        * __init__.py
        * file1.py
        * file2.py
    * dbutils
        * __init__.py
        * file3.py
    * start_point.py
    * __init__.py 

包装在mypackg.zip

中的代码

在本地系统测试上工作正常

  • 通过sparkContext.addPyFile('path_to_zip')添加到pyspark并运行我的工作
  • 通过spark-submit --py-files 'path_to_zip' myjob.py
  • 就像一个应用程序一样运行

但是,当我尝试在Databricks上执行相同操作时-我无法导入模块

import urllib 

urllib.request.urlretrieve("https://github.com/nikhilsarma/spark_utilities/blob/master/mydata.zip", "/databricks/driver/mydata.zip")

sc = spark.sparkContext.getOrCreate() and 
sc.addPyFile('/databricks/driver/mydata.zip')
sys.path.insert(0, r'/databricks/diver/mydata.zip')
sc = spark.sparkContext.getOrCreate()
sc.addPyFile(r'/databricks/driver/mydata.zip') 

from mypackg import start_point

错误:

  

ModuleNotFoundError:没有名为“ mypackg”的模块

1 个答案:

答案 0 :(得分:0)

这是我的uri中的一个错误。而不是从原始/母版下载,而是从blob /母版下载,这给了我一个我无法使用的文件。