pyhton3解決”tuple parameter unpacking is not supported”問題

Octopuslnlzy發表於2018-05-22

準備將鍵值對中的鍵與值對調,結果第10行出了bug,顯示”tuple parameter unpacking is not supported”

解決方法:將map(lambda(word,count) : (count,word)) 改為 map(lambda word_count : (word_count[1],word_count[0]))

原因:在python3中,類似

    lambda (x, y): x + y  這種形式,已經被

    lambda x_y: x_y[0] + x_y[1]   所取代,即使用  x_y 的形式代替 (x, y) ,即  x = x_y[0]    y=x_y[1]

datas = ["hadoop spark", "spark hive spark sql", "spark hadoop sql spark"]

rdd1 = sc.parallelize(datas)

word_count_rdd = rdd1.flatMap(lambda line: line.split(" "))
        .map(lambda word: (word, 1))
        .reduceByKey(lambda a, b: a+b)

sorted_rdd = word_count_rdd
        .map(lambda(word,count ) :(count,word))
        .sortByKey(ascending=False)     

相關文章