Найти самое длинное слово в строке - PullRequest
0 голосов
/ 07 мая 2019

Я работаю с R Hadoop.У меня есть строка, которую я сопоставил, устанавливая каждое слово в качестве ключа и его длину в качестве связанного значения.Как мне найти самое длинное слово из mapreduce?

Sys.setenv("HADOOP_CMD"="/home/hadoop/hadoop/bin/hadoop")
Sys.setenv("HADOOP_STREAMING"="/home/hadoop/hadoop/share/hadoop/tools/lib/hadoop-streaming-2.8.1.jar")
Sys.setenv("HADOOP_HOME"="/home/hadoop/hadoop")
Sys.setenv(JAVA_HOME="/usr/java/latest")

library(rhdfs)
library(rmr2)
hdfs.init()

line = "It's Supercalifragilisticexpialidocious!
Even though the sound of it
Is something quite atrocious
If you say it loud enough
You'll always sound precocious
Supercalifragilisticexpialidocious!"

to.dfs(line, output='/home/m072040031/small_doc.txt',
       format="text")

wordcount = function(input,
                     output,
                     pattern = '[[:punct:][:space:][:digit:]]+'){
  mapreduce(input = input,
            output = output,
            input.format= "text",
            map = function(k,
                           lines){
              v = unlist(strsplit(lines,
                                   split= pattern))
              keyval(v,
                     nchar(v))},
            reduce = function(word,
                              count){
              keyval(word,
                     count)}
            )
}

wordcount("/home/m072040031/small_doc.txt",
          output = "/home/m072040031/small_doc_wc.RData")

info=from.dfs("/home/m072040031/small_doc_wc.RData")

info
...