嗨,我想写一个java方法来将我的列转换成行。到目前为止,我主要在scala工作,所以不知道explode和seq在java中是如何工作的..这里是我在网上找到的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:如果这个问题不允许,请删除
暂无答案!
目前还没有任何答案,快来回答吧!