DataStax Apache Spark 与 Apache Cassandra 连接器
Apache Spark™ 和 Apache Cassandra® 实现闪电般快速的集群计算。
快速链接
内容 | 链接 |
---|---|
社区 | 在 Apache Cassandra 与我们交流 |
Scala 文档 | 最新发布版 (3.5.1): 连接器 API 文档, 连接器驱动文档 |
最新生产版本 | 3.5.1 |
新闻
3.5.1
- Spark-Cassandra-Connector 的最新版本引入了对向量类型的支持,大大增强了其功能。这一新特性使开发人员能够在 Spark 生态系统中无缝集成和使用 Cassandra 5.0 和 Astra 向量。通过支持向量类型,连接器现在可以提供 AI 和检索增强生成(RAG)数据的洞察,实现更高级和高效的数据处理和分析。
特性
该库允许您将 Cassandra 表作为 Spark RDD 和 Datasets/DataFrames 展示,将 Spark RDD 和 Datasets/DataFrames 写入 Cassandra 表,并在 Spark 应用程序中执行任意 CQL 查询。
- 兼容 Apache Cassandra 2.1 或更高版本(见下表)
- 兼容 Apache Spark 1.0 到 3.5(见下表)
- 兼容 Scala 2.11、2.12 和 2.13
- 将 Cassandra 表作为 Spark RDD 和 Datasets/DataFrames 展示
- 将表行映射到 CassandraRow 对象或元组
- 提供可自定义的对象映射器,用于将行映射到用户定义类的对象
- 通过隐式
saveToCassandra
调用将 RDD 保存回 Cassandra - 通过隐式
deleteFromCassandra
调用从 Cassandra 删除行和列 - 使用
joinWithCassandraTable
调用与 Cassandra 数据的子集进行 RDD 连接,并在使用 Datasets/DataFrames 时优化与 Cassandra 中数据的连接 - 使用
repartitionByCassandraReplica
调用根据 Cassandra 复制分区 RDD - 在 Cassandra 和 Scala 之间转换数据类型
- 支持所有 Cassandra 数据类型,包括集合
- 通过 CQL
WHERE
子句在服务器端过滤行 - 允许执行任意 CQL 语句
- 与 Cassandra 虚拟节点良好配合
- 可用于支持 Datasets/DataFrames API 的所有语言:Python、R 等
版本兼容性
连接器项目有几个分支,每个分支对应不同的 Spark 和 Cassandra 支持版本。对于之前的发布版本,分支名为"bX.Y",其中 X.Y 是主要+次要版本;例如,"b1.6"分支对应 1.6 发布版。"master"分支通常包含正在开发的下一个连接器版本。
目前,以下分支得到积极支持: 3.5.x (master), 3.4.x (b3.4), 3.3.x (b3.2), 3.2.x (b3.2), 3.1.x (b3.1), 3.0.x (b3.0) 和 2.5.x (b2.5)。
连接器 | Spark | Cassandra | Cassandra Java 驱动 | 最低 Java 版本 | 支持的 Scala 版本 |
---|---|---|---|---|---|
3.5.1 | 3.5 | 2.1.5*, 2.2, 3.x, 4.x, 5.0 | 4.18.1 | 8 | 2.12, 2.13 |
3.5 | 3.5 | 2.1.5*, 2.2, 3.x, 4.x | 4.13 | 8 | 2.12, 2.13 |
3.4 | 3.4 | 2.1.5*, 2.2, 3.x, 4.x | 4.13 | 8 | 2.12, 2.13 |
3.3 | 3.3 | 2.1.5*, 2.2, 3.x, 4.x | 4.13 | 8 | 2.12 |
3.2 | 3.2 | 2.1.5*, 2.2, 3.x, 4.0 | 4.13 | 8 | 2.12 |
3.1 | 3.1 | 2.1.5*, 2.2, 3.x, 4.0 | 4.12 | 8 | 2.12 |
3.0 | 3.0 | 2.1.5*, 2.2, 3.x, 4.0 | 4.12 | 8 | 2.12 |
2.5 | 2.4 | 2.1.5*, 2.2, 3.x, 4.0 | 4.12 | 8 | 2.11, 2.12 |
2.4.2 | 2.4 | 2.1.5*, 2.2, 3.x | 3.0 | 8 | 2.11, 2.12 |
2.4 | 2.4 | 2.1.5*, 2.2, 3.x | 3.0 | 8 | 2.11 |
2.3 | 2.3 | 2.1.5*, 2.2, 3.x | 3.0 | 8 | 2.11 |
2.0 | 2.0, 2.1, 2.2 | 2.1.5*, 2.2, 3.x | 3.0 | 8 | 2.10, 2.11 |
1.6 | 1.6 | 2.1.5*, 2.2, 3.0 | 3.0 | 7 | 2.10, 2.11 |
1.5 | 1.5, 1.6 | 2.1.5*, 2.2, 3.0 | 3.0 | 7 | 2.10, 2.11 |
1.4 | 1.4 | 2.1.5* | 2.1 | 7 | 2.10, 2.11 |
1.3 | 1.3 | 2.1.5* | 2.1 | 7 | 2.10, 2.11 |
1.2 | 1.2 | 2.1, 2.0 | 2.1 | 7 | 2.10, 2.11 |
1.1 | 1.1, 1.0 | 2.1, 2.0 | 2.1 | 7 | 2.10, 2.11 |
1.0 | 1.0, 0.9 | 2.0 | 2.0 | 7 | 2.10, 2.11 |
*兼容 2.1.X,其中 X >= 5
在线 API 文档
Scala 和 Java 接口的 API 文档可在线获取:
3.5.1
3.5.0
3.4.1
3.3.0
3.2.0
3.1.0
3.0.1
2.5.2
2.4.2
下载
本项目可在 Maven 中央仓库获取。 要使 SBT 下载连接器二进制文件、源代码和 javadoc,请在项目的 SBT 配置中添加以下内容:
libraryDependencies += "com.datastax.spark" %% "spark-cassandra-connector" % "3.5.1"
- Spark 3.0+ 的默认 Scala 版本是 2.12,请选择适当的构建。更多信息请参见 FAQ。
构建
参见 构建和工件
文档
- 快速入门指南
- 连接到Cassandra
- 从Cassandra加载数据集
- 服务器端数据选择和过滤
- 使用用户定义的case类和元组
- 将数据集保存到Cassandra和从Cassandra删除数据集
- 自定义对象映射
- 在Java中使用Connector
- Spark Streaming与Cassandra
- spark-cassandra-connector-embedded构件
- 性能监控
- 构建和构件
- Spark Shell
- DataFrames
- Python
- 分区器
- 提交应用程序
- 常见问题
- 配置参数参考表
- 开发Spark Cassandra Connector的提示
在线培训
在DS320:使用Spark进行分析中,您将学习如何有效且高效地使用Apache Spark、Apache Cassandra和DataStax Enterprise解决分析问题。您将了解Spark API、Spark-Cassandra Connector、Spark SQL、Spark Streaming以及关键的性能优化技术。
社区
报告错误
可以使用JIRA报告新问题。请包括所有相关细节,包括Spark、Spark Cassandra Connector、Cassandra和/或DSE的版本。最好能提供一个带有示例代码的最小可重现案例。
邮件列表
问题和帮助请求可以提交到用户邮件列表。
问答交流
DataStax社区提供了一个免费的问答网站,涵盖了所有与DataStax相关技术的问题,包括Spark Cassandra Connector。DataStax工程师和社区成员经常访问这个论坛并回答问题。
贡献
为了保护社区,所有贡献者都必须签署DataStax Spark Cassandra Connector贡献许可协议。这个过程完全是电子化的,只需要几分钟。
要开发这个项目,我们建议使用IntelliJ IDEA。确保您已安装并启用Scala插件。使用IntelliJ IDEA打开项目,它会自动从提供的SBT配置创建项目结构。
开发Spark Cassandra Connector的提示
向项目贡献更改的检查清单:
- 创建一个SPARKC JIRA
- 确保所有单元测试和集成测试都通过
- 在CHANGES.txt顶部添加适当的条目
- 如果更改对最终用户有任何影响,还需要在./doc文件中进行相应的更改
- 在拉取请求描述前加上JIRA编号,例如:"SPARKC-123:修复..."
- 在GitHub上开启一个拉取请求并等待审核
测试
要运行单元测试和集成测试:
./sbt/sbt test
./sbt/sbt it:test
注意,集成测试需要在您的机器上安装CCM。 有关详细信息,请参阅开发Spark Cassandra Connector的提示。
默认情况下,集成测试会启动一个单独的、单节点Cassandra实例,并在本地模式下运行Spark。 可以使用您自己的Spark集群运行集成测试。 首先,准备一个包含测试代码的jar:
./sbt/sbt test:package
然后将生成的测试jar复制到您的Spark节点并运行:
export IT_TEST_SPARK_MASTER=<Spark Master URL>
./sbt/sbt it:test
生成文档
要生成参考文档,请使用
./sbt/sbt spark-cassandra-connector-unshaded/run (outputLocation)
outputLocation默认为doc/reference.md
许可证
版权所有 2014-2022,DataStax, Inc.
根据Apache许可证2.0版("许可证")获得许可;除非符合许可证,否则您不得使用此文件。您可以在以下位置获取许可证副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,根据许可证分发的软件是基于"按原样"的基础分发的,没有任何明示或暗示的保证或条件。有关许可证下的特定语言管理权限和限制,请参阅许可证。