spark map函數中使用println無法輸出


問題

   // 每個點為hardData中的一個Array
    val hardData = spark.read.textFile(args(0)).rdd
      .map(_.split(" ").map(_.toDouble).toArray)
      .cache()

    hardData.map(a => println(a(0).toString + " " + a(1).toString +
      " " + a(3).toString))

結果中沒有輸出

解決

參考 https://stackoverflow.com/questions/33225994/spark-losing-println-on-stdout

由於spark面向大數據量和分布式,在使用map函數輸出時存在各種問題:可能輸出到各個主機、數據量過大等問題。

因此,spark在設計時使map函數中不能使用println輸出信息流

將map函數改為foreach則有輸出...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM