【问题标题】:How to process Unstuctured data thru Mapreduce如何通过 Mapreduce 处理非结构化数据
【发布时间】:2013-05-15 14:22:02
【问题描述】:

我试图先了解非结构化数据。对我来说,下面提到的是非结构化数据。我已经通过“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???????????????????????????????????????

感谢您的快速回复。

【问题讨论】:

  • 请对代码、输入/输出和结构化文档(如 HTML 或 XML)使用代码格式。为此,请选择示例并单击消息发布/编辑表单上方的{} 按钮。

标签: java mapreduce hadoop-streaming


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    恕我直言,您首先应该考虑的是处理此类数据所需的 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>
    

    HTH

    附: : 这只是一个蓝图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 2019-08-24
      相关资源
      最近更新 更多