2016-10-09 4 views
4

Я пытаюсь выяснить, как установить столбец blob в разделе where. Есть идеи?Как установить столбец blob в разделе where с использованием spark-connector-api?

Например, если я ставлю следующий запрос в cqlsh работает

select * from hello where id=0xc1c1795a0b; 

// идентификатор столбца BLOB в Кассандре

Я попытался следующие

JavaRDD<CassandraRow> cassandraRowsRDD = javaFunctions(sc).cassandraTable("test", "hello") 
.select("range") 
.where("id=?", "0xc1c1795a0b"); 

Это дало мне исключение типа преобразователя

и я пробовал это

JavaRDD<CassandraRow> cassandraRowsRDD = javaFunctions(sc).cassandraTable("test", "hello") 
.select("range") 
.where("id=?", "0xc1c1795a0b".getBytes()); 

Это не дал мне никаких ошибок, однако он не дал результатов. Запрос в моем cqlsh действительно возвращал кучу результатов. поэтому я не уверен, чтобы установить blob в разделе where. Я использую Java. есть идеи?

ответ

2

Используйте это.

import com.datastax.driver.core.utils.Bytes; 

JavaRDD<CassandraRow> cassandraRowsRDD = javaFunctions(sc).cassandraTable("test", "hello") 
.select("range") 
.where("id=?",Bytes.getArray(Bytes.fromHexString("0xc1c1795a0b"))); 
+0

Спасибо! У меня есть еще одна проблема, которую трудно было проследить. вы можете заглянуть в эту страницу? http: //stackoverflow.com/questions/39953245/how-to-fix-java-lang-classcastexception-cannot-assign-instance-of-scala-collect – user1870400