我已经按照以下方式创建了spark数据框:
personNames.forEach { (personName) in
print(personName.firstName)
print(personName.lastName)
}
我想将其转换为以下json格式:
boot repl
我怎么能做到相同?
答案 0 :(得分:2)
您可以尝试to_json函数。像这样的东西。
import spark.implicits._
val list = List((16,12), (16,13), (16,14), (17,15), (17,16), (17,17))
val df = spark.parallelize(list).toDF("age", "number")
val jsondf = df.groupBy($"age").agg(collect_list($"number").as("name"))
.withColumn("json", to_json(struct($"age", $"name")))
.drop("age", "name")
.agg(collect_list($"json").as("json"))
结果如下。希望对您有所帮助。
+------------------------------------------------------------+
|json |
+------------------------------------------------------------+
|[{"age":16,"name":[12,13,14]}, {"age":17,"name":[15,16,17]}]|
+------------------------------------------------------------+