当试图对cql3创建的cassandra模式运行pig时,
-- This script simply gets a row count of the given column family
rows = LOAD 'cassandra://Keyspace1/ColumnFamily/' USING CassandraStorage();
counted = foreach (group rows all) generate COUNT($1);
dump counted;
我得到以下错误。
Error: Column family 'ColumnFamily' not found in keyspace 'KeySpace1'
我知道这是设计的,但是我一直很难找到将cql3表加载到pig中的正确方法。
有人能给我指出正确的方向吗?是否缺少一点文档?
5条答案
按热度按时间nwwlzxa71#
正如e90jimmy所说,它在cassandra1.2.8中是受支持的,但是我们在使用counter列类型时遇到了一个问题。这是由alex liu修复的,但由于1.2.7中的回归问题,修补程序无法继续:
https://issues.apache.org/jira/browse/cassandra-5234
要纠正这一点,请等到2.0准备就绪,或者下载源代码,自己应用上面链接中的补丁,然后重新构建cassandra.jar。现在已经为我工作了。。。
d7v8vwbk2#
按此https://github.com/alexliu68/cassandra/pull/3,看来该修复程序计划用于cassandra的1.2.6版本。这听起来像是他们试图在合理的不久的将来,但当然没有确定的预计到达时间。
uz75evzq3#
正如您所提到的,这是经过设计的,因为如果节俭被更新为允许这样做,它将损害向后的可计算性。尝试使用c*cli,而不是使用cql创建键空间和列族(我猜您使用的是cqlsh)。
我们也来看看这些问题:
https://issues.apache.org/jira/browse/cassandra-4924
https://issues.apache.org/jira/browse/cassandra-4377
cbeh67ev4#
现在Cassandra1.2.8支持这一点
tvokkenx5#
在pig中访问cql3表的最佳方法是使用cqlstorage处理程序
语法与上面的类似
更多信息请访问dev博客