为什么我的println在rdd中打印出元素串?

时间:2015-11-12 20:24:34

标签: scala apache-spark

当我尝试打印RDD的内容时,会打印下面显示的内容,如何打印内容? 谢谢!

scala> lines
res15: org.apache.spark.rdd.RDD[Array[String]] = MapPartitionsRDD[3] at filter at <console>:23



scala> lines.take(5).foreach(println)

[Ljava.lang.String;@6d3db5d1
[Ljava.lang.String;@6e6be45e
[Ljava.lang.String;@6d5e0ff4
[Ljava.lang.String;@3a699444
[Ljava.lang.String;@69851a51

2 个答案:

答案 0 :(得分:5)

这是因为它使用给定对象的toString实现。在这种情况下,Array打印出类型和哈希。如果您将其转换为List,那么由于List toString实施

,它将是更漂亮的输出
scala>println(Array("foo"))
[Ljava.lang.String;HASH    

scala>println(Array("foo").toList)
List(foo)

答案 1 :(得分:4)

根据您要打印出来的方式,您可以将打印元素的行更改为:

scala> lines.take(5).foreach(indvArray => indvArray.foreach(println))