如何使用Pig在cassandra中插入数据
如何使用Pig在cassandra中插入数据,cassandra,apache-pig,Cassandra,Apache Pig,我正在尝试使用Pig将HDFS中的文件中的数据复制到Cassandra中的表中。但是当将数据存储在Cassandra中时,作业失败,出现空指针异常。有人能帮我吗
用户表结构:
创建表用户(
用户id文本主键,
年龄智力,
第一个文本,
最后文本
)
我的猪脚本
A=使用PigStorage(',')作为(id:chararray,age:int,fname:chararray,lname:chararray)加载'/user/hduser/user.txt'
C=每个A生成一个TOTUPLE(T
我正在尝试使用Pig将HDFS中的文件中的数据复制到Cassandra中的表中。但是当将数据存储在Cassandra中时,作业失败,出现空指针异常。有人能帮我吗
用户表结构:
创建表用户(
用户id文本主键,
年龄智力,
第一个文本,
最后文本
)
我的猪脚本
A=使用PigStorage(',')作为(id:chararray,age:int,fname:chararray,lname:chararray)加载'/user/hduser/user.txt'
C=每个A生成一个TOTUPLE(TOTUPLE('user_id',id)),TOTUPLE('age',age),TOTUPLE('first',fname),TOTUPLE('last',lname)
将C存储到'cql://ram_keyspace/users'使用CqlStorage()
例外情况:
java.lang.RuntimeException:java.lang.NullPointerException
位于org.apache.cassandra.hadoop.cql3.CqlRecordWriter.(CqlRecordWriter.java:123)
位于org.apache.cassandra.hadoop.cql3.CqlRecordWriter.(CqlRecordWriter.java:90)
位于org.apache.cassandra.hadoop.cql3.CqlOutputFormat.getRecordWriter(CqlOutputFormat.java:76)
位于org.apache.cassandra.hadoop.cql3.CqlOutputFormat.getRecordWriter(CqlOutputFormat.java:57)
位于org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigOutputFormat.getRecordWriter(PigOutputFormat.java:84)
位于org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector。(MapTask.java:627)
位于org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:753)
位于org.apache.hadoop.mapred.MapTask.run(MapTask.java:364)
位于org.apache.hadoop.mapred.Child$4.run(Child.java:255)
位于java.security.AccessController.doPrivileged(本机方法)
位于javax.security.auth.Subject.doAs(Subject.java:415)
位于org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
位于org.apache.hadoop.mapred.Child.main(Child.java:249)
原因:java.lang.NullPointerException
位于org.apache.cassandra.hadoop.cql3.CqlRecordWriter(CqlRecordWriter.java:109)
... 还有12个
使用Pig和Cassandra的人能帮我解决这个问题吗?您使用的是CqlStorage,它要求您指定输出查询
,这是一条准备好的语句,将用于将数据插入列族。提供了一个示例:
grunt> STORE insertformat INTO
'cql://cql3ks/simple_table1?output_query=UPDATE+cql3ks.simple_table1+set+b+%3D+%3F'
USING CqlStorage;
什么版本的卡桑德拉?卡桑德拉版本是1.2.13