在Java中收集数据框列名称

问题描述

我在Java8中使用spark-sql-2.4.1v。 我有下面的情况

List data = List(
  ("20","score","school","2018-03-31",14,12,20),("21",13,21),("22","rate",11,22),23)
 )

Dataset<Row> df =  = data.toDF("id","code","entity","date","column1","column2","column3")




Dataset<Row> resultDs =  df
          .withColumn("column_names",array(Arrays.asList(df.columns()).stream().map(s -> new Column(s)).toArray(Column[]::new))
              );

**但是这显示的是列名称的相应行列值。 那这怎么了?如何在Java **中获取“ column_names”

我正在尝试解决以下用例:

让我们说我有100列,例如column1 .... to column100 ...,每个列的计算将有所不同,具体取决于列名和数据..但是,每当我运行我的spark作业时,我都会得到哪些列我需要计算...但是在我的代码中,我将拥有所有列逻辑,即每个列逻辑可能不同...我需要忽略未指定列的逻辑...但是由于数据框包含所有列,因此我选择了指定column..so对于未选择的列,我的代码抛出异常,因为未找到列...我需要解决此问题

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...