簡體   English   中英

Scala中的Apache Spark無法打印rdd值

[英]Apache Spark in Scala not printing rdd values

我也是Spark和Scala的新手,所以這可能是一個非常基本的問題。

我創建了一個包含4行單詞的文本文件。 其余代碼如下:

val data = sc.textFile("file:///home//test.txt").map(x=> x.split(" "))

println(data.collect)
println(data.take(2))
println(data.collect.foreach(println))

上面所有的“ println”命令都將產生如下輸出:[Ljava.lang.String; @ 1ebec410

任何想法我怎么顯示rdd的實際內容,我什至嘗試了“ saveAstextfile”,它也保存了與java相同的行...

我正在將Intellij IDE用於spark scala,是的,我瀏覽了與此相關的其他文章,但沒有幫助。 預先謝謝你

RDD的最終返回類型是RDD[Array[String]]以前,您正在打印Array[String] ,該Array[String]打印內容如下: [Ljava.lang.String;@1ebec410)因為Array的toString()方法沒有被覆蓋,所以它只是打印對象的HASHCODE

您可以嘗試使用隱式方法toListArray[String]強制轉換為List[String] ,現在您將能夠看到列表中的內容,因為scala中的list的toString()方法被覆蓋並顯示內容

這意味着如果您嘗試

data.collect.foreach(arr => println(arr.toList))

這將向您顯示內容或@Raphael建議使用data.collect().foreach(arr => println(arr.mkString(", ")))這也將起作用,因為arr.mkString(", ")將轉換將數組轉換為String,然后將每個元素分隔為,

希望這可以清除您的疑問謝謝

data的類型為RDD[Array[String]] ,您打印的是Array[String]toString[Ljava.lang.String;@1ebec410 ),請嘗試以下操作:

data.collect().foreach(arr => println(arr.mkString(", ")))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM