如何使用Amazon mapreduce解析freebase四元转储

如何使用Amazon mapreduce解析freebase四元转储,mapreduce,freebase,elastic-map-reduce,Mapreduce,Freebase,Elastic Map Reduce,我试图从freebase中提取电影信息,我只需要电影的名字,导演和演员的名字和id 我发现使用Freebase主题转储很难做到这一点,因为这里没有对导演ID的引用,只有导演的名字 这项任务的正确方法是什么?我是否需要使用amazons云解析整个quad转储?或者有什么esy方法吗?您确实需要使用quad dump,但它的容量低于4 GB,不需要Hadoop、MapReduce或任何云处理。一台像样的笔记本电脑就可以了。在一台两岁的笔记本电脑上,这个简单的命令: time bzgrep '/fil

我试图从freebase中提取电影信息,我只需要电影的名字,导演和演员的名字和id

我发现使用Freebase主题转储很难做到这一点,因为这里没有对导演ID的引用,只有导演的名字


这项任务的正确方法是什么?我是否需要使用amazons云解析整个quad转储?或者有什么esy方法吗?

您确实需要使用quad dump,但它的容量低于4 GB,不需要Hadoop、MapReduce或任何云处理。一台像样的笔记本电脑就可以了。在一台两岁的笔记本电脑上,这个简单的命令:

time bzgrep '/film/' freebase-datadump-quadruples.tsv.bz2 | wc -l
10394545

real    18m56.968s
user    19m30.101s
sys 0m56.804s
在不到20分钟的时间内提取并统计引用胶片域的所有内容。即使您必须多次浏览该文件(这很可能),您也可以在不到一小时内完成整个任务,这意味着不需要强大的计算资源

您需要遍历一个中间节点(Freebase speak中的CVT)来获取演员,但是您的其余信息应该直接连接到主题电影节点


Tom

您确实需要使用quad dump,但它不超过4GB,不需要Hadoop、MapReduce或任何云处理。一台像样的笔记本电脑就可以了。在一台两岁的笔记本电脑上,这个简单的命令:

time bzgrep '/film/' freebase-datadump-quadruples.tsv.bz2 | wc -l
10394545

real    18m56.968s
user    19m30.101s
sys 0m56.804s
在不到20分钟的时间内提取并统计引用胶片域的所有内容。即使您必须多次浏览该文件(这很可能),您也可以在不到一小时内完成整个任务,这意味着不需要强大的计算资源

您需要遍历一个中间节点(Freebase speak中的CVT)来获取演员,但是您的其余信息应该直接连接到主题电影节点


汤姆

首先,我完全同意汤姆的观点和建议。我经常使用UNIX命令行工具从Freebase数据转储中提取“有趣的”数据片段

但是,另一种方法是将Freebase数据本地加载到“graph”存储系统中,并使用该系统提供的API和/或查询语言与数据交互以进行进一步处理

我使用RDF,因为数据模型非常相似,并且很容易将Freebase数据转储转换为RDF(请参阅:)。然后我将其加载到ApacheJena的TDB存储中(http://incubator.apache.org/jena/documentation/tdb/)并使用Jena API或SPARQL进行进一步处理

另一种合理且可扩展的方法是实现您在MapReduce中需要做的事情,但只有当您所做的处理量涉及到很大一部分Freebase数据并且不像计算行那么简单时,这才有意义。这比使用自己的机器更昂贵,你需要一个Hadoop集群或者你需要使用AmazonEMR。(我可能应该编写freebase2rdf的MapReduce版本;-)


我的2美分。

首先,我完全同意汤姆的观点和建议。我经常使用UNIX命令行工具从Freebase数据转储中提取“有趣的”数据片段

但是,另一种方法是将Freebase数据本地加载到“graph”存储系统中,并使用该系统提供的API和/或查询语言与数据交互以进行进一步处理

我使用RDF,因为数据模型非常相似,并且很容易将Freebase数据转储转换为RDF(请参阅:)。然后我将其加载到ApacheJena的TDB存储中(http://incubator.apache.org/jena/documentation/tdb/)并使用Jena API或SPARQL进行进一步处理

另一种合理且可扩展的方法是实现您在MapReduce中需要做的事情,但只有当您所做的处理量涉及到很大一部分Freebase数据并且不像计算行那么简单时,这才有意义。这比使用自己的机器更昂贵,你需要一个Hadoop集群或者你需要使用AmazonEMR。(我可能应该编写freebase2rdf的MapReduce版本;-)

我的2美分