2015-09-22 3 views
0

Я пытаюсь реализовать простой WordCount в Scala + Spark. Вот мой кодПочему saveAsTextFile ничего не делает?

object FirstObject { 
    def main(args: Array[String]) { 
    val input = "/Data/input" 
    val conf = new SparkConf().setAppName("Simple Application") 
           .setMaster("spark://192.168.1.162:7077") 
    val sparkContext = new SparkContext(conf) 
    val text = sparkContext.textFile(input).cache() 
    val wordCounts = text.flatMap(line => line.split(" ")) 
         .map(word => (word,1)) 
         .reduceByKey((a,b) => a+b) 
         .sortByKey() 
    wordCounts.saveAsTextFile("/Data/output") 

    } 

Эта работа работает на 54s, и, наконец, ничего не делать. Is не записывает вывод на /Data/output

Также, если я заменяю saveAsTextFile на forEach(println), это производит желаемый результат.

+2

просто идея: вы установили правильные права на запись в папку/data/output? – psisoyev

+0

Позор мне! Я переместил его в '/ tmp', и он сработал. Благодаря! – c0rp

+0

Не уверен, что это правильный путь, но я добавлю это в качестве ответа, поэтому в будущем люди могут получить ответ в случае, если они будут бороться с одной и той же проблемой. – psisoyev

ответ

1

Вы должны проверить свои права пользователя на/папку данных/вывода. Эта папка должна иметь права на запись для вашего конкретного пользователя.