我正在尝试先理解非结构化数据。对我来说,下面提到的是非结构化数据。我遵循了"Hadoop :权威指南“中提到的地震示例,这是一个结构化数据,具有为位置、比例和地理位置定义的位置。
谁能帮助我,如果一个人得到一个非结构化的数据,如下所示,让Mapreduce程序来了解在哪个地理位置,有多少人在谈论苹果,iPhone和Samasung为例如?
Liyyah_xoxoIG: Liyyah_xoxoeating an apple it's good lol ?
elisaeiyoktaviaItu samsung apa yah ?? :s ngiler dah x_x
congduc3I just moved up to level 4 in #CSRRacing for iPhone! You should check it out for FREE! http://t.co/dyEXQmQbgS@. Í
MDAUD97Hollywood, CaliforniaRT @CNET: Here's how to hack apps into multi-window mode on the Samsung Galaxy Note 2: http://t.co/p2ZsITDhB3
lasirenerRiad???? ????? ???? ?????? ?? ?????? ?? ???? ????? ??? ?????? ???? ...??? ??? ????? ???? ????? ?????? ????? ???????...
http://t.co/PArHmN4mvK
bimandaldoSir Matt Busby WayWonge wae cino mbak, tp cino ireng RT @ardikawp: Kendel men"@bimandaldo: Iphone cino mbak RT @ajengpradiptasr: Iphone kan bisa ngirim foto l
Hatemmuhamed1RT @M_7assib: ??????? ?????? ??? ???? ?? ???? ?? iPhone.
deepakabhishek2indiaSamsung Galaxy S4 already hits 6 million sales http://t.co/KZ3KEUgtYT
tanhuifang1989I've collected 42,140 gold coins! http://t.co/MpmNDY6ebA #iphone, #iphonegames, #gameinsight
ThomasNachlikMünster, Germanyjust finished a Runtastic bike trip of 19.85 km in 43m 58s with #Runtastic PRO iPhone app: http://t.co/L3EK9lznBL
figbishI've collected 46,475 gold coins! http://t.co/pd6wQwsZrF #iphone, #iphonegames, #gameinsight
gutjahrThe WebKo(s)mische Zufälle: #Apple App-Store-Zähler erreicht die 50 Milliarden exakt zur Eröffnungskeynote der großen #Google I/O Konferenz.
a_sifon_421??????
?????????????????????iPhone???????????????????????????????????????感谢您的快速响应。
发布于 2013-05-15 22:55:52
这将是一个常见的地图程序,在那里我们可以访问上面的文本。您可以使用任何Java String API或正则表达式,以自己的方式解析文本,并可以提取地理位置、手机类型等信息。然后,您可以将它们写入context中,该context稍后将成为reducer的输入。这将是您需要的一个相当常规的计数摘要。
您可以查看下面的链接,获取有关如何在java http://docs.oracle.com/javase/tutorial/essential/regex/intro.html中使用正则表达式的示例。
发布于 2013-05-16 11:16:20
您应该考虑的第一件事是处理此类数据所需的InputFormat。通过查看数据,我认为这是一个平面二进制文件(如果我错了,请告诉我,我会相应地更新答案)
现在,考虑到它是二进制文件,第一个障碍将是编写一个自定义的InputFormat,因为Hadoop不提供任何可以处理平面二进制文件的InputFormat。您不能使用可用的InputFormats,因为它们不会是任何分隔符来创建拆分(就像TextInputFormat中的\n一样)。您的InputFormat可能是这样的:
读取指定的否。从字节0开始,将此byte[]数组转换为一个字符串,该字符串将作为文本值( InputSplit)和一些键一起提供给映射器。没有。您将用于生成InputSplit的字节数应该是可配置的,并且可以在作业设置期间通过作业进行设置。
在这之后,你的逻辑应该是提取你感兴趣的字段,并将它们抛给归约器。
YourInputFormat<Length, byte[], LongWritable, Text> -> Mapper<LongWritable, Text, Text, Text> -> Reducer<Text, Text, Text, Text>HTH
附言:这只是一个蓝图。
https://stackoverflow.com/questions/16567642
复制相似问题