2016-08-09 2 views
0

Im пытается вставить некоторые строки в cassandra с помощью оператора партии. Я не смог найти документацию о том, как это сделать с помощью искрового разъема datastax. Я попытался следующиепакетная вставка с использованием разъема искры cassandra для Scala

CassandraConnector(conf).withSessionDo({ session => 
    val ps = session.prepare(s"BEGIN BATCH" + 
    "INSERT INTO test.user_trans (user_id, amount) VALUES(?, ?);" + 
    "INSERT INTO standing (user_id, position) VALUES (?, ?);" + 
    "APPLY BATCH"); 
    val bound = ps.bind(user_id, amount, user_id, position) 
    session.execute(bound) 
}); 

Но datastax драйвер выдает следующую ошибку

com.datastax.driver.core.exceptions.SyntaxError: line 1:6 mismatched input 'BATCHINSERT' expecting K_BATCH (BEGIN [BATCHINSERT] INTO...) 

это вообще возможно сделать атомное пакетное обновление с помощью драйвера разъема soark datastax?

Я использую искровым Cassandra-разъем версии 1.6.0-s_2.10 и искровых 1.6.1

Все другие oporations на РДД-х и сохранение отдельных строк Кассандре работает

ответ

0

Потому что вы забыл поставить пробег после BEGIN BATCH

val ps = session.prepare(s"BEGIN BATCH " + // Put a space after BEGIN BATCH "INSERT INTO test.user_trans (user_id, amount) VALUES(?, ?);" + "INSERT INTO standing (user_id, position) VALUES (?, ?);" + "APPLY BATCH");