将 Delta Lake 包添加到 AWS EMR Notebook
Posted
技术标签:
【中文标题】将 Delta Lake 包添加到 AWS EMR Notebook【英文标题】:Add Delta Lake packages to AWS EMR Notebook 【发布时间】:2020-12-04 09:35:52 【问题描述】:Delta jardelta-core_2.11-0.6.1.jar
被添加到 EMR Master 节点“SPARK_HOME/jars”目录中。但是从 EMR Notebook 调用 Delta API 我收到以下错误:
# Though Notebook comes with default SPARK instant so following line I didn't execute
# spark = SparkSession.builder.appName("MyApp") \
# .config("spark.jars.packages", "io.delta:delta-core_2.11:0.6.1") \
# .getOrCreate()
from delta.tables import * # ModuleNotFoundError: No module named 'delta'
CLI 命令pyspark --packages "io.delta:delta-core_2.11:0.6.1"
在主节点中运行良好。我可以在 CLI 模式下访问 Delta API。
有什么方法可以直接在 Notebook 中使用 Delta API。请提出建议。
【问题讨论】:
一种方式python sc = spark.sparkContext sc.addPyFile(/usr/lib/spark/jars/delta-core_2.11-0.6.1.jar") from delta.tables import * # working fine now
【参考方案1】:
包含 DeltaTable 类的 tables.py 文件可以在 github 上的 delta repo 中找到。 你可以在这里找到它 - https://github.com/delta-io/delta/tree/master/python/delta
您可以克隆存储库(请记住选择正确的分支)或复制文件并将其上传到 Jupyter。无论哪种方式,它都需要添加为依赖项,因此您需要类似
import sys
sys.path.append('mnt/jupyterhome/<username>/<folder_containing_tables.py>)
希望这能让您启动并运行!
【讨论】:
以上是关于将 Delta Lake 包添加到 AWS EMR Notebook的主要内容,如果未能解决你的问题,请参考以下文章