Amazon SageMaker运行tabula报JavaNotFoundError该怎么安装Java?
解决Amazon SageMaker中tabula依赖Java缺失的方案
报错原因:tabula-py底层依赖Java运行环境,SageMaker默认Notebook实例未预装Java,因此执行read_pdf方法时触发JavaNotFoundError。
安装配置Java的操作步骤
方式一:直接在Notebook单元格中执行安装(推荐,无需切换终端)
- 新建空白单元格,执行以下Shell命令:
!sudo apt update && sudo apt install -y openjdk-11-jre-headless
安装选择无界面版本的OpenJDK 11,资源占用低,和tabula-py兼容性最优,全程无需人工交互,等待几十秒即可完成。
- 验证Java安装结果:
!java -version
正常返回如下格式内容即代表安装成功:
openjdk version "11.0.x"
OpenJDK Runtime Environment (build 11.0.x+xxx)
OpenJDK 64-Bit Server VM (build 11.0.x+xxx, mixed mode, sharing)
方式二:在SageMaker终端执行安装
如果偏好终端操作,点击Notebook界面右上角的「New」-「Terminal」进入终端,依次执行以下命令即可:
sudo apt update sudo apt install -y openjdk-11-jre-headless
测试tabula运行
Java安装完成后无需重启Notebook内核,直接运行原有代码即可正常读取PDF内容:
import tabula pdf_path = "https://github.com/chezou/tabula-py/raw/master/tests/resources/data.pdf" dfs = tabula.read_pdf(pdf_path, stream=True) # 输出第一张表的内容验证 print(dfs[0])
注意事项
- SageMaker默认Notebook实例重启后,系统盘的非持久化修改会被重置,再次使用需要重新执行安装命令。如果需要开机自动配置Java,可以将安装命令写入实例的生命周期配置启动脚本中。
- 优先选择OpenJDK 8或11版本,避免使用过高版本Java导致tabula运行异常。
内容的提问来源于stack exchange,提问作者Matthew Metros
相关产品推荐
相关产品推荐

