Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra 卡桑德拉+;宽柱清管器_Cassandra_Apache Pig - Fatal编程技术网

Cassandra 卡桑德拉+;宽柱清管器

Cassandra 卡桑德拉+;宽柱清管器,cassandra,apache-pig,Cassandra,Apache Pig,我目前正在开发一个推荐程序应用程序,并将cassandra与hadoop和pig一起用于map/reduce作业。 为了利用列名属性,我们的团队决定使用无值列和聚合列名存储数据,因此,例如,特定内容的所有命中都存储在具有单行的列族中,并且每列都是使用以下结构的内容的命中: rowkey = 'single_row' { id_content:hit_date, - . . . } 使用此模式,我们可以获得宽行而不是窄行;问题是,我需要如何操作Pig中的数据才能使

我目前正在开发一个推荐程序应用程序,并将cassandra与hadoop和pig一起用于map/reduce作业。 为了利用列名属性,我们的团队决定使用无值列和聚合列名存储数据,因此,例如,特定内容的所有命中都存储在具有单行的列族中,并且每列都是使用以下结构的内容的命中:

rowkey = 'single_row' {
    id_content:hit_date, -
    .
    .
    .
}

使用此模式,我们可以获得宽行而不是窄行;问题是,我需要如何操作Pig中的数据才能使用此模式将数据存储在cassandra中?

从您的评论中,我不确定您是否使用复合列,或者您是否只是将id\u内容和hit\u日期连接在一起

对于普通(即非复合)列,模式为:

(key, {(col_name, col_value), ...})
对于复合列,我认为模式如下所示:

(key, {((col_name_part_1, col_name_part_2), col_value), ...})

此评估(针对复合列)基于读取在上提交的修补程序。我的方法是连接值。在这种情况下,架构将是:
(键,{(col_name,col_value),…})
我在答案中添加了非复合模式以使其更加完整。pig中的复合列在存储时不会像在加载时那样开箱即用。我必须序列化复合列名的元组,以便将其正确存储到cassandra中。