来自java代码的cassandra更新表

来自java代码的cassandra更新表,java,cassandra,datastax,materialized-views,Java,Cassandra,Datastax,Materialized Views,我试图在Cassandra中为一个表实现各种分区。我的基本想法是给每一行分配一些磁盘号,然后根据磁盘号将它们放在不同的视图中。对于循环共享,我正在做的是: System.out.println("\n\nRR PARTITIONING\n\n"); results = session.execute("select * from user;"); int i=0, disk_no=0, total_disks=4; for(Row row: results) {

我试图在Cassandra中为一个表实现各种分区。我的基本想法是给每一行分配一些磁盘号,然后根据磁盘号将它们放在不同的视图中。对于循环共享,我正在做的是:

System.out.println("\n\nRR PARTITIONING\n\n");
    results = session.execute("select * from user;");
    int i=0, disk_no=0, total_disks=4;
    for(Row row: results)
    {
        String emailid = row.getString("email");
        disk_no = i++%total_disks;
        session.execute("update user set disk_no="+disk_no+" where email="+emailid+";");

        System.out.println("Disk "+disk_no+ ": "+ row.getString("firstname")+" "+row.getString("lastname")+" "+ row.getInt("age"));
    }
    session.execute("create materialized view RRDisk0 as select * from user where disk_no =0 and email is not null;");
    session.execute("create materialized view RRDisk1 as select * from user where disk_no =1 and email is not null;");
    session.execute("create materialized view RRDisk2 as select * from user where disk_no =2 and email is not null;");
    session.execute("create materialized view RRDisk3 as select * from user where disk_no =3 and email is not null;");
我面临的错误是:

Exception in thread "main" com.datastax.driver.core.exceptions.SyntaxError: line 1:44 no viable alternative at character '@'

请帮帮我,我已经做了两个小时了,无法找出问题所在。

您忘了在更新查询中引用
emailid
值。这应该是:

`session.execute("update user set disk_no="+disk_no+" where email='"+emailid+"';");`
“更新用户设置磁盘号=“+disk\u no+”其中email=”“+emailid+”;”