[英]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.