与cassandra cql3一起使用pig

mcdcgff0  于 2021-06-14  发布在  Cassandra
关注(0)|答案(5)|浏览(463)

当试图对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中的正确方法。
有人能给我指出正确的方向吗?是否缺少一点文档?

nwwlzxa7

nwwlzxa71#

正如e90jimmy所说,它在cassandra1.2.8中是受支持的,但是我们在使用counter列类型时遇到了一个问题。这是由alex liu修复的,但由于1.2.7中的回归问题,修补程序无法继续:
https://issues.apache.org/jira/browse/cassandra-5234
要纠正这一点,请等到2.0准备就绪,或者下载源代码,自己应用上面链接中的补丁,然后重新构建cassandra.jar。现在已经为我工作了。。。

d7v8vwbk

d7v8vwbk2#

按此https://github.com/alexliu68/cassandra/pull/3,看来该修复程序计划用于cassandra的1.2.6版本。这听起来像是他们试图在合理的不久的将来,但当然没有确定的预计到达时间。

uz75evzq

uz75evzq3#

正如您所提到的,这是经过设计的,因为如果节俭被更新为允许这样做,它将损害向后的可计算性。尝试使用c*cli,而不是使用cql创建键空间和列族(我猜您使用的是cqlsh)。
我们也来看看这些问题:
https://issues.apache.org/jira/browse/cassandra-4924
https://issues.apache.org/jira/browse/cassandra-4377

cbeh67ev

cbeh67ev4#

现在Cassandra1.2.8支持这一点

tvokkenx

tvokkenx5#

在pig中访问cql3表的最佳方法是使用cqlstorage处理程序
语法与上面的类似

row = Load 'cql://Keyspace/ColumnFamily/' Using CqlStorage()

更多信息请访问dev博客

相关问题