簡體   English   中英

將Pig與Cassandra CQL3一起使用

[英]Using Pig with Cassandra CQL3

嘗試對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中的正確方法遇到麻煩。

有人可以指出我正確的方向嗎? 是否缺少一些文檔?

Cassandra 1.2.8現在支持此功能

正如您所提到的,這是設計使然,因為如果更新節儉以允許這樣做,則會損害向后的可計算性。 可以使用C * CLI來代替使用CQL創建鍵空間和列族(我猜您使用過cqlsh)。

看看這些問題:

根據此https://github.com/alexliu68/cassandra/pull/3 ,似乎此修復程序計划用於Cassandra的1.2.6版本。 聽起來好像他們正在努力在不久的將來實現這一目標,但當然沒有確定的ETA。

正如e90jimmy所說,它在Cassandra 1.2.8中受支持,但是在使用計數器列類型時存在問題。 該問題已由Alex Liu修復,但是由於1.2.7中的回歸問題,該補丁無法繼續進行:

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

要更正此問題,請等到2.0正式投入生產或下載源代碼后,親自應用上述鏈接中的補丁,然后重新構建cassandra .jar。 現在為我工作...

在Pig中訪問Cql3表的最佳方法是使用CqlStorage處理程序

語法類似於上面的語法

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

更多信息在開發博客中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM