0

我试图先了解非结构化数据。对我来说,下面提到的是非结构化数据。我已经通过提到地震示例的“Hadoop:权威指南”进行了操作,这是一个结构化数据,具有为位置、规模和地理定义的位置。

如果有人获得如下非结构化数据以使用 Mapreduce 程序了解哪个 Geo,有多少人在谈论 Apple、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???????????????????????????????????????

感谢您的快速回复。

4

2 回答 2

0

这将是一个通常的映射程序,我们可以在其中访问上述文本。您可以使用任何 Java 字符串 API 或正则表达式并以您自己的方式解析文本,并可以提取诸如地理、手机类型等信息。然后您可以将它们写入上下文,稍后将其作为减速器的输入。这将是您需要的计数的常规总结器。

您可以查看以下链接以获取有关如何在 java http://docs.oracle.com/javase/tutorial/essential/regex/intro.html中使用正则表达式的一些示例

于 2013-05-15T14:55:52.083 回答
0

恕我直言,您首先应该考虑的是处理此类数据所需的 InputFormat。通过查看数据,在我看来它是一个平面二进制文件(如果我错了请告诉我,我会相应地更新答案)

现在,考虑到它是二进制文件,第一个障碍是编写自定义 InputFormat,因为 Hadoop 不提供任何可以处理平面二进制文件的 InputFormat OOTB。您不能使用可用的 InputFormats,因为它们不会成为任何分隔符来创建拆分(如 TextInputFormat 的情况下的 \n)。您的 InputFormat 可能是这样的:

读取指定的编号。字节作为字节 [],从字节 0 开始,并将这个字节 [] 数组转换为一个字符串,该字符串将作为文本值(InputSplit)连同一些键一起提供给映射器,比如行号。没有。您将用于生成 InputSplit 的字节数应该是可配置的,并且可以在作业设置期间通过作业进行设置。

在此之后,您的逻辑应该是提取您感兴趣的字段并将它们扔给减速器。

YourInputFormat<Length, byte[], LongWritable, Text> -> Mapper<LongWritable, Text, Text, Text> -> Reducer<Text, Text, Text, Text>

高温高压

PS:这只是一个蓝图。

于 2013-05-16T03:16:20.060 回答