如何使用 Pig 从 Cassandra 加载 CF/TABLE
Posted
技术标签:
【中文标题】如何使用 Pig 从 Cassandra 加载 CF/TABLE【英文标题】:how to use Pig to load CF/TABLE from Cassandra 【发布时间】:2013-12-09 05:48:20 【问题描述】:当我尝试通过 pig 从 Cassandra 加载表数据集时,遇到了一些问题。目前,Cassandra 版本为 2.0.3。
下面是我的数据集的两行
>the format is "user_name","tweet","user_id':
>chaaiinzz | RT @Luis_Cortes35: @3_chaaiinzz @jonaski720 @sarajanellxo @skylalopez man I love this Spanish class | 408845338091343872
>Jessicaokelley | Absolutely love the movie "The Mortal Instruments: City Of Bones!! | 408845337965907968
创建键空间并将数据集复制到表 twitters。
cqlsh:pxh130430> CREATE KEYSPACE cql3ks WITH replication = 'class': 'SimpleStrategy', 'replication_factor': 1 ;
cqlsh:pxh130430> use cql3ks;
cqlsh:cql3ks> CREATE TABLE twitters ( user_id varchar PRIMARY KEY, tweet varchar, user varchar);
cqlsh:cql3ks> COPY twitters (user, tweet, user_id) FROM '/tmp/nameT.csv' with delimiter = '|';
3625 rows imported in 2.142 seconds.
cqlsh:cql3ks> select count(*) from twitters;
count
-------
3620
(1 rows)
在 Pig 中加载数据
grunt> moretestvalues= LOAD 'cql://cql3ks/twitters/' USING CqlStorage;
grunt> describe moretestvalues;
moretestvalues: user_id: chararray,tweet: chararray,user: chararray,user_id: chararray
grunt> dump moretestvalues;
2013-12-08 22:09:19,337 [main] ERROR org.apache.pig.tools.grunt.Grunt -ERROR 1108: Duplicate schema alias: user_id in "moretestvalues"
Details at logfile: /Users/pengyuhou/apache- cassandra/examples/pig/bin/pig_1386562141091.log
实际上,我只有三列和一个“user_id”列。我不知道为什么 pig 会导致两个“user_id”列。
你们有什么想法吗?谢谢!!!
【问题讨论】:
【参考方案1】:这是一个已知错误,应使用Cassandra-6309 修复
【讨论】:
谢谢!!你知道如何使用“6309-fix-pig-test-compiling.txt”来修复这个bug吗? 您需要从 github 获取 Cassandra Repo。使用“git apply”应用补丁。使用“ant build”重新编译 Cassandra。使用你新编译的 Cassandra。 谢谢。我尝试了另一种使用 Cassandra 1.2 和 Pig 0.7 的方法。最后,它确实对我有用。 您要检查我的另一个问题吗?谢谢!在这里:issues.apache.org/jira/browse/CASSANDRA-6466 使用 cqlstorage 引擎获得更易于使用的格式化。以上是关于如何使用 Pig 从 Cassandra 加载 CF/TABLE的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Pig 中过滤 Cassandra TimeUUID/UUID