df.show()関数を使用する必要がありますより多くのパラメータを持つ方法、あなたはAPI
mkString(スタート:文字列、9月:文字列、最後:String)を:で確認することができます文字列内の
を表示し、このトラバース可能か、イテレータのすべての要素を 開始、終了、および区切り文字列を使用します。
val separatorLine = "+----+-----+"
val separator = "|"
val maplist=List(Map("id" -> "1", "Name" -> "divya"),
Map("id" -> "2", "Name" -> "gaya")
)
val header=maplist.flatMap(_.keys).distinct
val data=maplist.map(_.values)
println(separatorLine)
println(header.mkString("|", " |", "|"))
println(separatorLine)
data.foreach(x => println(x.mkString("|", " |", "|")))
println(separatorLine)
結果:
+----+-----+
|id |Name|
+----+-----+
|1 |divya|
|2 |gaya|
+----+-----+
更新:あなたは(例えば5用)すべての文字列中の同じ長さを持っているしたい場合は、必要なときにヨーヨーは空白を追加しAUXILIAR方法を行うことができます。
@tailrec
private def appendElem(original : String, desiredLength: Int, c: Char): String = {
if (original.length < desiredLength)
appendElem(original + c, desiredLength, c)
else {
original
}
}
val separator = "|"
val maplist=List(Map("id" -> "1", "Name" -> "divya"),
Map("id" -> "2", "Name" -> "gaya")
)
val separatorLine = List.fill(maplist.size)("+").map(appendElem(_, 6,'-')).mkString+ "+"
val header=maplist.flatMap(_.keys.map(key => appendElem(key, 5, ' '))).distinct
val data=maplist.map(_.values)
println(separatorLine)
println(header.mkString("|", "|", "|"))
println(separatorLine)
data.map(x => x.map(y => appendElem(y, 5, ' '))).foreach(x => println(x.mkString("|", "|", "|")))
println(separatorLine)
結果は次のようになります。
+-----+-----+
|id |Name |
+-----+-----+
|1 |divya|
|2 |gaya |
+-----+-----+