scala - 错误:“数据源 org.apache.spark.sql.cassandra 不支持流式读取”
问题描述
数据源 org.apache.spark.sql.cassandra 不支持流式读取
val spark = SparkSession
.builder()
.appName("SparkCassandraApp")
.config("spark.cassandra.connection.host", "localhost")
.config("spark.cassandra.connection.port", "9042")
.config("spark.cassandra.auth.username", "xxxxx")
.config("spark.cassandra.auth.password", "yyyyy")
.master("local[*]")
.getOrCreate();
val tableDf3 = spark.**readStream**
.format("org.apache.spark.sql.cassandra")
.options(Map( "table" -> "aaaaa", "keyspace" -> "bbbbb"))
.load()
.filter("deviceid='XYZ'")
tableDf3.show(10)
解决方案
没错——Spark Cassandra 连接器只能用作流式接收器,不能用作流式源。
如果您想从 Cassandra 中获取更改,那么这是一项相当复杂的任务,这取决于 Cassandra 的版本(是否实现 CDC)以及其他因素。
对于 Spark,您可以通过定期重新读取数据来实现某种流式传输,使用时间戳列过滤掉您已经读取的数据。您可以在以下答案中找到有关该方法的更多信息。
推荐阅读
- security - Magento 1.9 被黑。该怎么办?
- scheme - Scheme 函数检查平衡括号
- amazon-ec2 - 如何通过 SSH 窗口命令将 Bitbucket 存储库克隆到 EC2
- np - 为什么使用确定性图灵机无法解决 NP 问题,但是每个 NTM 都有 TM
- routes - Laravel 在定义路由时返回路由未找到异常
- rust - 检查是否在可选捕获中定义了宏参数(声明性宏语法)
- python - Django:无法获取 GET 响应值 - AttributeError:模块 'django.http.request' 没有属性 'GET'
- java - 如何自动导入 SSL 证书
- laravel - 如何将 Shippo API 与 Laravel 8 集成
- dataframe - Julia DataFrame 中的四分位数计算