当前位置: 首页 > 知识库问答 >
问题:

带IN子句的Spark Cassandra连接器筛选

阳长恨
2023-03-14
create table cf_text
(a varchar,b varchar,c varchar, primary key((a,b),c))

Query : select * from cf_text where a ='asdf' and b in ('af','sd');

sc.cassandraTable("test", "cf_text").where("a = ?", "af").toArray.foreach(println)

我如何指定在Spark中的CQL查询中使用的IN子句?如何还可以指定范围查询?

共有1个答案

曹沛
2023-03-14

我只是想知道,但是上面的Spark代码能用吗?我认为Spark不允许在分区键上使用where(在您的例子中是aB),因为它在暗中使用它们(请参见这个问题的最后一个答案):Spark Datastax Java API Select语句

在任何情况下,使用Cassandra Spark连接器,都允许堆叠WHERE子句,并且可以用列表 指定中的

List<String> valuesList = new ArrayList<String>();
valuesList.Add("value2");
valuesList.Add("value3");

sc.cassandraTable("test", "cf")
    .where("column1 = ?", "value1")
    .where("column2 IN ?", valuesList)
    .keyBy(new Function<MyCFClass, String>() {
                public String call(MyCFClass _myCF) throws Exception {
                    return _myCF.getId();
                }
            });

注意,这里仍然适用使用IN with cassandra/cql的正常规则。

sc.cassandraTable("test", "person")
    .where("age > ?", "15")
    .where("age < ?", "20")
    .keyBy(new Function<Person, String>() {
                public String call(Person _person) throws Exception {
                    return _person.getPersonid();
                }
            });

 类似资料:
  • 例如,我想做这样的事情: 新建Select().from(Table).where(“id in?”,list).execute()

  • 我有基于spring boot 1.2.3的应用程序。其中一个模型非常具体:包含枚举列表。当我试图调用spring jpa查询时,sql的一部分消失[C.categories IN(:category)被替换为(.IN(?))]。我想这可能是图书馆的一些问题,或者我做错了什么。 你知道怎么解决这个问题吗? 目标模型包含: 枚举模型:

  • 记录具有id和名称 带有@Convert的DocumentModel 记录转换器 如果recordIds有多个值(例如:docId=1),即使: 嵌套选择不工作 IN子句有和没有()不工作 子句的成员不工作 导致本机SQL直接无法工作 @公式不工作 而且问题似乎是记录应该是单引号-逗号分隔的,而不仅仅是逗号分隔的,因为它们是字符串。(本机SQL查询在这种情况下工作)

  • 问:在GoogleSheets中,仅使用内置函数,如何编写一个过滤器,根据每行中的一列不在另一个范围的有效值列表中排除记录。 详细资料 我正在使用Google Sheets编写一个财务电子表格,其中我所有的支出和收入都输入到一个名为“交易”的表格中。我有一个单独的表叫做常量,在这里我有一个收入类别列表和一个费用类别列表。 以下是一些用于问题的示例数据: 常数 交易 我有一张名为ByMonth的表格

  • 主要内容:Oracle IN操作符介绍,Oracle IN运算符示例,以下是纠正/补充内容:在本教程中将学习如何使用Oracle 运算符来确定值是否与列表或子查询中的任何值相匹配。 Oracle IN操作符介绍 Oracle 运算符确定值是否匹配列表或子查询中的任何值。 注:子查询是嵌套在另一个查询中的查询,可通过在子查询教程中了解子查询用法。 确定表达式是否与值列表匹配的Oracle 运算符的语法如下所示: 并且表达式的语法与子查询匹配: 参数 在上面语法中,这里将介绍每个参数含义:

  • 问题内容: 我正在尝试在sqlalchemy中执行此查询 我想在执行时绑定列表。 问题答案: 怎么样 编辑 :没有ORM,它将是 需要两个参数,第一个是要检索的字段列表,第二个是条件。您可以通过(或)属性访问表对象上的所有字段。