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 (将#修改为@)