我有一列csv数据,我希望将其存储在apache cassandra中(不是DATASTAX版本)。
例如我的数据将包含:
val3,val1,val2,val4
val2,val4,val1,val3
我想处理这些数据,并希望以下列方式输出:
value position
val1 2,3
val2 3,1
val3 1,4
val4 4,2
请记住,即使在制作二级索引之后,cassandra也不允许join,order by,group by或where子句(> =,< =)。那么,我应该抛弃它吗?
所以,我的问题是人们在cassandra中有效存储csv数据的一般做法是什么?
是否有一个稳定的版本(因为稳定的原因,我试过其中很少但没有用)的hive-cassandra连接器,通过它我们可以实现连接,order by,group by或where子句(> = ,< =)?
答案 0 :(得分:1)
Cassandra受益于查询驱动的建模。你的疑问是什么?是获取值的索引吗?在这种情况下,请创建一个表格,如:
create table entries(
value text,
entry int,
location int,
primary key (value, entry))
然后阅读csv并插入表中。然后你可以做
select * from entries where value='val1'
或者,如果您正在寻找任意分析(ala hadoop),我强烈建议使用spark cassandra连接器或使用spark来进行分析查询。您甚至可以使用Spark(甚至Spark Streaming)读取csv文件,并执行sc.SaveToCassandra将结果存储在cassandra表中以便快速查询。