spark rdd元素println


1.spark api主要分兩種:轉換操作和行動操作。如果在轉化操作中println spark打印了 我也看不到。

val result = sqlContext.sql(sql)
val resultRdd = result.rdd.map(x => {
    //不能print,即使print了也看不到
})

2.打印RDD的元素

參考:https://strongyoung.gitbooks.io/spark-programming-guide/rdds/rdd_operations/printing_elements_of_an_rdd.html

一個常用的打印RDD里的元素的方法是,使用rdd.foreach(println)或rdd.map(println)。在一個單機環境下,這將能產生期望的輸出,並且打印所有的RDD的元素。然而,在一個集群模式中,對stdout的輸出會調用執行器的stdout,從而把輸出寫到執行器的標准輸出(即stdout),而不是驅動程序,所以,在驅動程序的標准輸出中不會顯示這些。要在驅動程序中打印所有的元素,可以使用collect()方法,先將RDD傳輸到驅動程序節點,然后,使用:

rdd.collect().foreach(println)

這會引起驅動程序在內存外運行,盡管,因為collect()獲取整個RDD到一台單機上。如果你只需要打印RDD的部分元素,一個更安全的方法就是使用take():

rdd.take(100).foreach(prinltn)

 


免責聲明!

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



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