apache-spark - 如何使用 spark-cassandra-connector 将数据集写入 Cassandra 表?
问题描述
我正在尝试将结构化蒸汽数据集保存到给定的 Cassandra 表中。
我正在使用 datastax cassandra 连接器版本 spark-cassandra-connector_2-11.jar
当我尝试像下面一样保存数据集时
dataSet
.writeStream()
.format("org.apache.spark.sql.cassandra")
.option("table",table)
.option("keyspace", keyspace)
.outputMode("append")
.start();
投掷错误:
数据源 org.apache.spark.sql.cassandra 不支持流式写入
应该做什么以及如何处理?
解决方案
关于它有几种选择:
- 使用 Spark Cassandra Connector (SCC) 版本 2.x、Spark < 2.4 和 OSS Cassandra,唯一的选择是实现自定义
forEach
操作,就像这里所做的那样; - 使用 Spark Cassandra 连接器版本 2.x、Spark >= 2.4 和 OSS Cassandra,我们可以使用
forEachBatch
正常的写入操作,就像这里一样; - 对于 DSE,我们可以只使用
data.writeStream().format("org.apache.spark.sql.cassandra")
,因为 DSE Analytics 有自定义 SCC; - 从 SCC 2.5 开始,OSS Cassandra 也开放了 DSE 特定功能,因此我们可以像 DSE 一样使用它,如docs 所示。
推荐阅读
- python - 使用 csv.DictReader 和 os.listdir() 读取多个文件
- python - 遍历字典列表并与其他字典进行比较
- python-3.x - Pytest 使用装饰器模拟包含未传递的上下文管理器返回值的函数
- flutter - 为什么在使用 CustomPainter 时渐变会在整个屏幕上绘制?
- php - 通过 WooCommerce 订单和电子邮件中的文本更改特定运输方式的运输
- r - 用于计算 R 中功率的 2 个向量的 for 循环失败
- python - 如何访问 Pandas 中 nunique 给出的整数?
- c# - 如何在 vb.net 中声明函数以调用 c++ dll
- html - Safari (Webkit) 不正确地显示阴影(过滤器:drop-shadow)
- node.js - 如何使用 mongoimport 从导入的 json 数据中提取模式(或提取)?