我正在使用带有补丁 5234 的 Cassandra-1.2 - Pig Hadoop 无法访问通过 CQL3 创建的表 - 1.1.2 pig 0.11.1
我在 Cassandra 有一张桌子
datatypetest (num int PRIMARY KEY, ascii ascii, blob blob, text text, varnum varint);
datatypetest 中的测试数据是
num | ascii | blob | text | varnum
-----+-------+--------+--------+------
13 | 126 | 0x0003 | John | null
我运行了以下 PIG 脚本
test1 = LOAD 'cassandra://keyspace1/datatypetest' USING CassandraStorage() AS
(num:int, columns: bag {T: tuple(name, value)});
并且在别名test1中的输出如下
(12,{((),),((ascii),125),((blob),��),((text),deepak)})
正如您在输出中看到的那样,它不是以下格式
(<row_key>,{(<column_name1>,<value1>),(<column_name2>,<value2>)})
内袋有一个元组,它有另一个内部元组,我认为第一个内部元组是键是空的。
我不能使用 columns.ascii 或 columns.blob 或 columns.text 来访问如下所示的列元组并获得异常
test2 = FOREACH test1 GENERATE num, columns.text;
2013-07-29 09:11:58,488 [main] ERROR org.apache.pig.tools.grunt.Grunt -
ERROR 1200: Pig script failed to parse:
<line 3, column 8> pig script failed to validate:
org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1128:
Cannot find field text in name:tuple(),value:bytearray
如何访问列元组。提前致谢。