将 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的主要内容,如果未能解决你的问题,请参考以下文章

Delta Lake中CDC的实现

Delta Lake中CDC的实现

Delta Lake:如何在下一个版本的 delta 表中不携带已删除的记录?

KuduHudi和Delta Lake的比较

如何使用Delta Lake构建批流一体数据仓库

Delta Lake 学习