【发布时间】:2013-07-03 20:35:06
【问题描述】:
当密钥有多个组件时,我在尝试获取 keyval 对时卡住了。
假设所有键都包含 3 个字符串组件,例如:{"I" "like" "Lucy"} 或 {"You" "hate" "Jimmy"}。
这三个字符串的组合将是唯一键。而我想要的 mapreduce 结果是 {"I" "like" "Lucy"} 或 {"You" "hate" "Jimmy"} 的记录数。
问题是我应该为 3 个字符串键使用什么样的结构?
如果我使用列表作为键:
LST1<-list(who="I", how="like", whom="Lucy")
LST2<-list(who="I", how="like", whom="Lucy")
LST1 和 LST2 应该有相同的键值,但问题是它们是不同的对象,因此列表结构不能用作键。
如果我使用向量作为键:
v1<-c("I","like","lucy")
v2<-c("I","like","Jimmy")
R 将尝试比较同一位置的每个条目,并返回一个布尔值向量,在本例中为 {TRUE, TRUE, FALSE}。
有什么建议吗?我可以使用什么样的结构?或者有什么棘手的方法来处理这个问题?
我知道我可以在 Java 中处理这个问题,但我需要一个 R 中的解决方案。3 个字符串的情况只是一个示例,组件可以是数字、字符串、字符等所有内容。
【问题讨论】:
标签: r data-structures hadoop rhadoop