如何在AWS EMR Notebook中使用pyspark跨笔记本文件导入函数
EMR Notebook跨文件导入自定义Python函数报错排查方案
1. 路径匹配校验
首先在执行导入操作的Notebook中运行如下代码,确认当前工作路径和目标.py文件的位置是否匹配:
import os # 打印当前工作目录 print(os.getcwd()) # 打印当前工作目录下的所有文件 print(os.listdir())
如果目标.py文件不在输出的文件列表中,可选择两种方案解决:
- 将目标.py文件移动到当前工作目录下
- 将目标.py文件所在的目录加入Python搜索路径,示例代码如下:
import sys # 替换为你的.py文件实际存放的绝对路径 sys.path.append("/home/hadoop/notebooks/my_custom_module/")
路径配置完成后再执行导入操作即可。
2. 命名规范校验
- 目标.py文件名不能包含中文、空格、特殊符号,也不能和Python内置库(如
math、requests、pandas等)重名 - EMR底层为Linux系统,文件名、函数名大小写敏感,导入语句的大小写必须和实际文件、函数名完全一致
- 导入语法要和定义匹配:假设目标文件名为
my_func.py,内部定义的函数名为process_data,正确导入写法为:from my_func import process_data # 或者全量导入 import my_func # 调用时写my_func.process_data()
3. 内核状态校验
如果是刚刚上传/生成的.py文件,可先重启Notebook内核,再重新执行导入代码,排除缓存未更新导致的导入失败问题。
内容的提问来源于stack exchange,提问作者Mobeen
相关产品推荐
相关产品推荐

