从 Azure Databricks 访问 Azure Cosmos DB for Apache Cassandra 数据
适用对象: Cassandra
本文详细介绍了如何在 Azure Databricks 上通过 Spark 使用 Azure Cosmos DB for Apache Cassandra。
先决条件
Cassandra 连接器的 API for Cassandra 实例配置:
API for Cassandra 的连接器要求将 Cassandra 连接的详细信息作为 spark 上下文的一部分进行初始化。 当启动 Databricks 笔记本时,已初始化 Spark 上下文,不建议停止和重新初始化。 一种解决方案是在群集 spark 配置中添加群集级别的 API for Cassandra 实例配置。 这是每个群集的一次性活动。 将以下代码添加到 Spark 配置,作为空格分隔的键值对:
spark.cassandra.connection.host YOUR_COSMOSDB_ACCOUNT_NAME.cassandra.cosmosdb.azure.cn spark.cassandra.connection.port 10350 spark.cassandra.connection.ssl.enabled true spark.cassandra.auth.username YOUR_COSMOSDB_ACCOUNT_NAME spark.cassandra.auth.password YOUR_COSMOSDB_KEY
添加必需的依赖项
Cassandra Spark 连接器 - 要将 Azure Cosmos DB for Apache Cassandra 与 Spark 集成,Cassandra 连接器应附加到 Azure Databricks 群集。 若要附加群集:
- 查看 Databricks 运行时版本,即 Spark 版本。 然后找到与 Cassandra Spark 连接器兼容的 maven 坐标,并将其附加到群集。 请参阅“上传 Maven 包或 Spark 包”一文,将连接器库附加到群集。 建议选择支持 Spark 3.2.1 的 Databricks 运行时版本 10.4 LTS。 若要添加 Apache Spark Cassandra 连接器,请在群集中,选择“库”>“安装新库”>“Maven”,然后在 Maven 坐标中添加
com.datastax.spark:spark-cassandra-connector-assembly_2.12:3.2.0
。 如果使用的是 Spark 2.x,建议使用 Spark 版本为 2.4.5 的环境,在 maven 坐标com.datastax.spark:spark-cassandra-connector_2.11:2.4.3
处使用 spark 连接器。
- 查看 Databricks 运行时版本,即 Spark 版本。 然后找到与 Cassandra Spark 连接器兼容的 maven 坐标,并将其附加到群集。 请参阅“上传 Maven 包或 Spark 包”一文,将连接器库附加到群集。 建议选择支持 Spark 3.2.1 的 Databricks 运行时版本 10.4 LTS。 若要添加 Apache Spark Cassandra 连接器,请在群集中,选择“库”>“安装新库”>“Maven”,然后在 Maven 坐标中添加
Azure Cosmos DB for Apache Cassandra 特定的库 - 如果使用的是 Spark 2.x,则需要自定义连接工厂来配置从 Cassandra Spark 连接器到 Azure Cosmos DB for Apache Cassandra 的重试策略。 添加
com.microsoft.azure.cosmosdb:azure-cosmos-cassandra-spark-helper:1.2.0
maven 坐标将库附加到群集。
注意
如果使用的是 Spark 3.x,则不需要安装上述 Azure Cosmos DB for Apache Cassandra 特定的库。
警告
本文展示的 Spark 3 示例已使用 Spark 3.2.1 版本和相应的 Cassandra Spark 连接器 com.datastax.spark:spark-cassandra-connector-assembly_2.12:3.2.0 测试过。 更高版本的 Spark 和/或 Cassandra 连接器可能无法按预期运行。
示例笔记本
可在 GitHub 存储库中下载一系列 Azure Databricks 示例笔记本。 这些示例包括如何从 Spark 连接到 Azure Cosmos DB for Apache Cassandra 并对数据执行不同的 CRUD 操作。 此外可以将所有笔记本导入到 Databricks 群集工作区并运行。
从 Spark Scala 程序访问 Azure Cosmos DB for Apache Cassandra
在 Azure Databricks 上作为自动化流程运行的 Spark 程序将通过使用 spark-submit) 提交给群集,并安排在 Azure Databricks 作业中运行。
以下链接可以帮助你开始生成 Spark Scala 程序,以便与 Azure Cosmos DB for Apache Cassandra 进行交互。
- 如何从 Spark Scala 程序连接到 Azure Cosmos DB for Apache Cassandra
- 如何在 Azure Databricks 上以自动化作业的形式运行 Spark Scala 程序
- 使用 API for Cassandra 的代码示例完整列表
后续步骤
使用 Java 应用程序开始创建 API for Cassandra 帐户、数据库和表。