Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读取cassandra中的行和反序列化问题_Java_Cassandra_Hector - Fatal编程技术网

Java 读取cassandra中的行和反序列化问题

Java 读取cassandra中的行和反序列化问题,java,cassandra,hector,Java,Cassandra,Hector,我想从列族中获取所有行,并显示所有列。我试过这个: // Static import of HFactory! // First, insert the data Mutator<String> mutator = HFactory.createMutator(fKeyspace, fStringS); mutator.insert("fahrer1", "Fahrer", createStringColumn("first", "John")); mutator.insert("

我想从列族中获取所有行,并显示所有列。我试过这个:

// Static import of HFactory!

// First, insert the data
Mutator<String> mutator = HFactory.createMutator(fKeyspace, fStringS);
mutator.insert("fahrer1", "Fahrer", createStringColumn("first", "John"));
mutator.insert("fahrer2", "Fahrer", createStringColumn("first", "Vorname"));
mutator.insert("fahrer2", "Fahrer", createStringColumn("second", "Nachname"));
mutator.
    addInsertion("fahrer3", "Fahrer",
            createColumn("first", "Firstname", fStringS,
                    fStringS)).
    addInsertion("fahrer3", "Fahrer",
            createColumn("second", "Lastname", fStringS,
                    fStringS)).
    addInsertion("fahrer3", "Fahrer",
            createColumn("age", 29L, fStringS, fLongS))
    .execute();

// Now select..
CqlQuery<String, String, String> cqlQuery =
   new CqlQuery<String, String, String>(fKeyspace,fStringS,fStringS,fStringS);
cqlQuery.setQuery("SELECT * FROM ColumnFamily");

QueryResult<CqlRows<String, String, String>> result = cqlQuery.execute();

CqlRows<String, String, String> rows = result.get();
for (Row<String, String, String> row : rows.getList()) {
    System.out.println(row.getKey() + ":");
    for(HColumn<String, Object>col : row.getColumnSlice().getColumns()) {
        System.out.println(col.getName() + " : " + col.getValue());
        }
    }
}

您是否尝试过使用byte[]而不是Object?所有Cassandra数据项的底层类型都是字节数组。e、 g

QueryResult<CqlRows<String, String, byte[]>>
并查看返回的类型(如果有)。

ML的答案:

另外,请看一下新的模板包。它提供了对键入结果的更合理的检索。下面是一个入门指南,它利用了以下内容:

如果通过Cassandra CLI查询相同的ColumnFamily,会发生什么情况?您确认您的专栏族中存在预期的数据了吗?嗨,DNA,我更新了我的问题以回答您的问题:)我会试试这个,听起来不错(它符合我几小时前在用户组中得到的答案:-))。我将在这里发布正确的代码作为我问题的更新!省略泛型不起作用:-/byte[]-数组的东西看起来不错,完成了一些测试…事实上,这就是ML的答案:-)谢谢你对模板的提示!我没有使用它,因为方法名称中有“节俭”的意思。。。赫克托是个吝啬鬼,所以我觉得这个电话会“肮脏”。。。我会试试看,然后再写一次:-)
QueryResult<CqlRows<String, String, byte[]>>
CqlResult result = executeQuery("select * from ColumnFamily");
for (CqlRow row : result.getRows()) {
    System.out.println(new String (row.getKey()));
}