gpt4 book ai didi

scala - InvalidRequestException(为什么 :empid cannot be restricted by more than one relation if it includes an Equal)

转载 作者:可可西里 更新时间:2023-11-01 14:15:33 28 4
gpt4 key购买 nike

这是关于我在从 Apache Spark 查询 Cassandra 时遇到的问题。

来自 Spark 的正常查询工作正常,没有任何问题,但是当我使用关键条件进行查询时,出现以下错误。最初我尝试查询复合键列族,它也给出了如下相同的问题。

“原因:InvalidRequestException(如果 empid 包含等于,则不能受多个关系的限制)”

列族:

CREATE TABLE emp (
empID int,
deptID int,
first_name varchar,
last_name varchar,
PRIMARY KEY (empID));

列族内容:

empID, deptID, first_name, last_name

104, 15, 'jane', 'smith'

示例 SCALA 代码:

val job=new Job()
job.setInputFormatClass(classOf[CqlPagingInputFormat])
val host: String = "localhost"
val port: String = "9160"
ConfigHelper.setInputInitialAddress(job.getConfiguration(), host)
ConfigHelper.setInputRpcPort(job.getConfiguration(), port)
ConfigHelper.setInputColumnFamily(job.getConfiguration(), "demodb", "emp")
ConfigHelper.setInputPartitioner(job.getConfiguration(), "Murmur3Partitioner")
CqlConfigHelper.setInputColumns(job.getConfiguration(), "empid,deptid,first_name,last_name")
//CqlConfigHelper.setInputCQLPageRowSize(job.getConfiguration(), limit.toString)
CqlConfigHelper.setInputWhereClauses(job.getConfiguration(),"empid='104'")

// Make a new Hadoop RDD
val casRdd = sc.newAPIHadoopRDD(job.getConfiguration(),
classOf[CqlPagingInputFormat],
classOf[Map[String, ByteBuffer]],
classOf[Map[String, ByteBuffer]])

由于过去几天我一直在努力克服这个问题,因此我恳请您告诉我是否有任何解决这种情况的方法。

谢谢

最佳答案

此错误的出现是由于查询在 Cassandra 中的翻译方式(有关详细信息,请查看 org.apache.cassandra.hadoop.cql3.CqlPagingRecordReader#whereClause)。当查询转换为 Cassandra 时,它具有以下语法:

SELECT * FROM "emp" WHERE token("empid") > ? AND token("empid") <= ? AND empid='104' LIMIT 1000 ALLOW FILTERING

有一个相关的 JIRA ( CASSANDRA-6151) 标记为 won't fix 讨论了一些解决问题的方法。来自小documentation我发现,CqlConfigHelper.setInputWhereClauses 应该只用于不属于键的索引列。

希望对你有帮助。

关于scala - InvalidRequestException(为什么 :empid cannot be restricted by more than one relation if it includes an Equal),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21036143/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com