如何解决Java中的DataSet转置列
嗨,我想编写java方法将我的列转置为行。到目前为止,我主要在scala工作,所以不确定在Java中爆炸和seq的工作原理。这里是我在网上找到的scala代码..有人可以帮我将其转换为java:
val (cols,types) = transDF.dtypes.filter{ case (c,_) => !transBy.contains(c)}.unzip
require(types.distinct.size == 1)
val kvs = explode(array(
cols.map(c => struct(lit(c).alias("column_name"),col(c).alias("column_value"))): _*
))
val byExprs = transBy.map(col(_))
transDF
.select(byExprs :+ kvs.alias("_kvs"): _*)
.select(byExprs ++ Seq($"_kvs.column_name",$"_kvs.column_value"): _*)
}
在这里,我找到了代码:http://bailiwick.io/2017/10/21/transpose-data-with-spark/ 非常感谢,
p.s:如果不允许此问题,请删除
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。