Apache spark apachespark读取预先准备好的语句中的Cassandra混合列
使用ApacheSpark从cassandra中读取Apache spark apachespark读取预先准备好的语句中的Cassandra混合列,apache-spark,cassandra,Apache Spark,Cassandra,使用ApacheSpark从cassandra中读取 sparkSession.sqlContext().read() .format("org.apache.spark.sql.cassandra") .option("table", "information_package") .option("keyspace", "streaming_keyspace")
sparkSession.sqlContext().read()
.format("org.apache.spark.sql.cassandra")
.option("table", "information_package")
.option("keyspace", "streaming_keyspace")
.load().show(false);
卡桑德拉的火花性质
spark.cassandra.connection.host=localhost
spark.cassandra.connection.keep_alive_ms=600000000
spark.cassandra.connection.timeout_ms=10000
spark.cassandra.read.timeout_ms=220000
表信息_包大约有20列
进入卡桑德拉日志:
由于缓存限制已达到(15 MB),准备好的语句在最后一分钟被丢弃。
请从cassandra中选择:
select * from system.prepared_statements
得到:
SELECT "col1", "col2", "col3" FROM "streaming_keyspace"."information_package" WHERE token("col1") <= ? ALLOW FILTERING
SELECT "col1", "col2", "col3" FROM "streaming_keyspace"."information_package" WHERE token("col1") > ? ALLOW FILTERING
SELECT "col2", "col1", "col3" FROM "streaming_keyspace"."information_package" WHERE token("col1") <= ? ALLOW FILTERING
SELECT "col2", "col1", "col3" FROM "streaming_keyspace"."information_package" WHERE token("col1") > ? ALLOW FILTERING
SELECT "col3", "col2", "col1" FROM "streaming_keyspace"."information_package" WHERE token("col1") <= ? ALLOW FILTERING
SELECT "col3", "col2", "col1" FROM "streaming_keyspace"."information_package" WHERE token("col1") > ? ALLOW FILTERING
SELECT "col3", "col1", "col2" FROM "streaming_keyspace"."information_package" WHERE token("col1") <= ? ALLOW FILTERING
SELECT "col3", "col1", "col2" FROM "streaming_keyspace"."information_package" WHERE token("col1") > ? ALLOW FILTERING
...
从“streaming_keyspace”中选择“col1”、“col2”、“col3”。“information_package”中的token(“col1”)?允许过滤
从“流式处理”键空间中选择“col2”、“col1”、“col3”。“信息包”中的令牌(“col1”)?允许过滤
从“流媒体_键空间”中选择“col3”、“col2”、“col1”。“信息_包”中的令牌(“col1”)?允许过滤
从“流式处理”键空间中选择“col3”、“col1”、“col2”。“信息包”中的令牌(“col1”)?允许过滤
...
我看到单个select请求的列混合。问题是,为什么以及谁在为卡桑德拉的准备好的声明混合专栏。主要的问题是,对于停止混合柱,我应该改变什么属性
upd
混合从列数=5开始
已准备语句在最后一分钟被丢弃,因为已达到缓存限制(15 MB)
这意味着您正在耗尽准备好的语句缓存。这通常是由于创建了具有具体值的准备好的语句。如果出现这种情况,您可以通过检查system.prepared\u语句中保存的语句并查找重复语句来进行调试
至于列的混合,这取决于您如何准备语句。从所描述的内容来看,似乎语句正在被多次重新准备,而没有对语句中使用的列进行显式排序
您需要与您定义准备语句的方式保持一致。您使用的Spark Cassandra Connector是什么版本的?Spark-Cassandra-Connector_2.11-2.4.0