1

当尝试针对 CQL3 创建的 Cassandra Schema 运行 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 中的正确方法。

有人可以指出我正确的方向吗?是否缺少一些文档?

4

5 回答 5

1

Cassandra 1.2.8 现在支持此功能

于 2013-07-30T17:29:28.717 回答
0

在 Pig 中访问 Cql3 表的最佳方法是使用 CqlStorage 处理程序

语法类似于您上面的语法

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

更多信息在开发博客文章中

于 2013-09-03T18:29:06.297 回答
0

根据此https://github.com/alexliu68/cassandra/pull/3,看来此修复程序计划用于 Cassandra 的 1.2.6 版本。听起来他们正试图在不久的将来解决这个问题,但当然没有确定的 ETA。

于 2013-06-12T22:16:07.767 回答
0

正如 e90jimmy 所说,它在 Cassandra 1.2.8 中得到支持,但是我们在使用计数器列类型时遇到了问题。这已由 Alex Liu 修复,但由于 1.2.7 中的回归问题,补丁无法继续:

https://issues.apache.org/jira/browse/CASSANDRA-5234

要更正此问题,请等到 2.0 准备好生产或下载源代码,自行应用上述链接中的补丁并重建 cassandra .jar。现在为我工作...

于 2013-07-31T03:02:51.430 回答
0

正如您所提到的,这是设计使然,因为如果更新节俭以允许这样做,它将损害向后可计算性。与其使用 CQL 创建键空间和列族(我猜你使用了 cqlsh),不如尝试使用C* CLI

看看这些问题:

于 2013-04-19T14:55:38.983 回答