2016-12-14 10 views
0

casssandra 2.28, java-connector3, sparks2.0을 사용합니다.카산드라 (Cassandra)는 여러 개의 검색어를 선택했습니다.

여러 개의 선택 매개 변수를 사용하여 간단한 쿼리를 작성하려고하는데 구문을 올바르게 얻을 수 없습니다. 단일 PARAM 내가 여러 PARAMS이 모든 실패 여러 가지 방법을 시도 할 어떻게

CassandraJavaRDD<CassandraRow> rdd = javaFunc 
       .cassandraTable("test", "tests").where("ID= ?", "1"); 

작동 :

javaFunc.cassandraTable("tests", "test").where("ID= ?", "1").and("Name= ?", "John"); 

javaFunc.cassandraTable("tests", "test").where("ID= ?", "1"+ " and "+ "Name= ?", "John"); 

시도 빌드 문을 오류를 제공 - "EQ"을 좋아하지 않는다 :

Statement s = QueryBuilder.select().all() 
      .from("tableName") 
      .where(eq("column_1", 1)) 
      .and(eq("column_2", 9)) 
      .and(eq("column_3", 50)); 

기본 101 쿼리와 비슷하지만 간단히 찾을 수 없습니다. 예제 코드.

+0

무엇 오류가 발생합니까? 귀하의 쿼리 빌더에 의해 생성 된 CQL은 나에게 유효 해 보입니다 : SELECT * FROM tableName WHERE column_1 = 1 AND column_2 = 9 AND column_3 = 50; –

+0

문제가 컴파일러 오류 인 경우 QueryBuilder에서 eq를 가져와야 할 수 있습니다 (예 : 'import static com.datastax.driver.core.querybuilder.QueryBuilder.eq;'). –

+0

@Andy 감사합니다. com.datastax.driver.core.querybuilder.QueryBuilder.eq가 트릭입니다. 그러나이 Resultset을 RDD로 변환하려면 어떻게해야합니까? 또한 원래의 다중 매개 변수 쿼리를 수행 할 방법이 없기 때문에 RDD를 반환하고 간단하게 cassandracount를 수행 할 수 있습니다 (즉, 현재 문제가 필요한 것입니다) –

답변

1

그래서 결국 일 구문은 어디에요() 어디에요() (NO .and)입니다

javaFunc.cassandraTable("tests", "test").where("ID= ?", "1").where("Name= ?", "John"); 

이 유일한 방법 또는 가장 최적의 방법인지 확실하지