使用 Livy API 提交和执行 Spark 作业
注意
适用于 Fabric 数据工程的 Livy API 目前为预览版。
适用于:✅Microsoft Fabric 中的数据工程和数据科学
通过创建湖屋开始使用适用于 Fabric 数据工程的 Livy API;使用 Microsoft Entra 应用令牌进行身份验证;从远程客户端向 Fabric Spark 计算提交批处理或会话作业。 你还将了解 Livy API 终结点;提交作业;并监视结果。
先决条件
具有湖屋的 Fabric 高级版或试用版容量
为 Livy API 启用租户管理员设置(预览版)
远程客户端,例如带有 Jupyter Notebooks 支持、PySpark 和适用于 Python 的 Microsoft 身份验证库 (MSAL) 的 Visual Studio Code
访问 Fabric Rest API 需要 Microsoft Entra 应用令牌。 将应用程序注册到 Microsoft 标识平台
选择 REST API 客户端
可以使用各种编程语言或 GUI 客户端与 REST API 终结点交互。 在本文中,我们将使用 Visual Studio Code。 Visual Studio Code 需要使用 Jupyter Notebooks、PySpark 和适用于 Python 的 Microsoft 身份验证库 (MSAL) 进行配置
如何授权 Livy API 请求
若要使用包括 Livy API 在内的 Fabric API,首先需要创建一个 Microsoft Entra 应用程序并获取令牌。 应用程序需要充分注册和配置,以便对 Fabric 执行 API 调用。 有关详细信息,请参阅将应用程序注册到 Microsoft 标识平台。
执行 Livy 作业需要许多 Microsoft Entra 范围权限。 下面是 Spark 代码 + 存储访问 + SQL 的简单示例:
- Code.AccessAzureDataExplorer.All
- Code.AccessAzureDataLake.All
- Code.AccessAzureKeyvault.All
- Code.AccessFabric.All
- Code.AccessStorage.All
- Item.ReadWrite.All
- Lakehouse.Execute.All
- Lakehouse.Read.All
- Workspace.ReadWrite.All
注意
在公共预览版期间,我们将添加一些额外的细粒度范围,如果使用此方法,当我们添加这些额外范围时,Livy 应用将会中断。 请检查此列表,因为它将使用额外范围进行更新。
有些客户想要比之前的列表更细粒度的权限。 可以移除 Item.ReadWrite.All 并将其替换为以下更细粒度的范围权限:
- Code.AccessAzureDataExplorer.All
- Code.AccessAzureDataLake.All
- Code.AccessAzureKeyvault.All
- Code.AccessFabric.All
- Code.AccessStorage.All
- Lakehouse.Execute.All
- Lakehouse.ReadWrite.All
- Workspace.ReadWrite.All
- Notebook.ReadWrite.All
- SparkJobDefinition.ReadWrite.All
- MLModel.ReadWrite.All
- MLExperiment.ReadWrite.All
- Dataset.ReadWrite.All
注册应用程序后,将需要应用程序(客户端)ID 和目录(租户)ID。
调用 API 的经过身份验证的用户需要是 Livy API 和数据源项所在的工作区成员,并具有参与者角色。 有关详细信息,请参阅授予用户对工作区的访问权限。
如何发现 Fabric Livy API 终结点
需要湖屋项目才能访问 Livy 终结点。 创建湖屋后,可以在设置面板中找到 Livy API 终结点。
Livy API 终结点将遵循以下模式:
https://api.fabric.microsoft.com/v1/workspaces/<ws_id>/lakehouses/<lakehouse_id>/livyapi/versions/2023-12-01/
URL 附加有 <sessions> 或 <batches>,具体取决于选择的内容。
与 Fabric 环境集成
对于每个 Fabric 工作区,都会配置一个默认初学者池,默认情况下,所有 Spark 代码的执行都使用此初学者池。 可以使用 Fabric 环境自定义 Livy API Spark 作业。
提交 Livy API 作业
现在,你已经完成了 Livy API 的设置,接下来可以选择提交批处理或会话作业。
如何监视请求历史记录
可以使用监视中心查看之前的 Livy API 提交,并调试任何提交错误。