gpt4 book ai didi

scala - Spark SQL 将数据集转换为数据框

转载 作者:行者123 更新时间:2023-12-05 00:46:59 25 4
gpt4 key购买 nike

如何将数据集 obj 转换为数据框?在我的示例中,我将 JSON 文件转换为数据帧并转换为数据集。在数据集中,我添加了一些额外的属性( newColumn )并将其转换回数据帧。这是我的示例代码:

val empData = sparkSession.read.option("header", "true").option("inferSchema", "true").option("multiline", "true").json(filePath)

.....
 import sparkSession.implicits._
val res = empData.as[Emp]

//for (i <- res.take(4)) println(i.name + " ->" + i.newColumn)

val s = res.toDF();

s.printSchema()

}
case class Emp(name: String, gender: String, company: String, address: String) {
val newColumn = if (gender == "male") "Not-allowed" else "Allowed"
}

但我期望新的列名 newColumn加入 s.printschema() .输出结果。但它没有发生?为什么?任何原因?我怎样才能做到这一点?

最佳答案

输出的架构 Product Encoder仅根据其构造函数签名确定。因此, body 中发生的任何事情都会被丢弃。

你可以

empData.map(x => (x, x.newColumn)).toDF("value", "newColumn")

关于scala - Spark SQL 将数据集转换为数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52762979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com