如何将Array [String]输出到Json文件?

时间:2019-06-19 07:41:43

标签: sql json scala

我想将Array [String]转换为JSON文件。 看起来像这样:

scala> ok.foreach(println)
Bayern Munich,7
Borussia Dortmund,5
Arsenal,3
Schalke 04,2
SC Freiburg,1
Hannover 96,1
Lazio,1
Chelsea,1
Borussia Mönchengladbach,1
Real Madrid,1

我需要这些数字保持在原处,因为它们的顺序至关重要。

我尝试使用: ok.write.format(“ json”)。save(“ Query11.json”) 但这是我得到的错误: 错误:值写入不是Array [String]

的成员

1 个答案:

答案 0 :(得分:0)

scala> ok
res58: Array[String] = Array(Bayern Munich,7, Borussia Dortmund,5, Arsenal,3, Schalke 04,2, SC Freiburg,1, Hannover 96,1, Lazio,1, Chelsea,1, Borussia Mönchengladbach,1, Real Madrid,1)

scala> val df  =  sc.parallelize(ok).toDF("Arr_string")
scala> val df1 = df.withColumn("_tmp", split($"Arr_string", ",")).select(
     |   $"_tmp".getItem(0).as("Name"),
     |   $"_tmp".getItem(1).as("Number")
     | ).drop("_tmp")

scala> df1.show(false)
+------------------------+------+
|Name                    |Number|
+------------------------+------+
|Bayern Munich           |7     |
|Borussia Dortmund       |5     |
|Arsenal                 |3     |
|Schalke 04              |2     |
|SC Freiburg             |1     |
|Hannover 96             |1     |
|Lazio                   |1     |
|Chelsea                 |1     |
|Borussia Mönchengladbach|1     |
|Real Madrid             |1     |
+------------------------+------+

scala> df1.write.format("json").save(<path of parent json dir>)