如何将具有值的列添加到 Spark Java 中的新数据集?

Posted

技术标签:

【中文标题】如何将具有值的列添加到 Spark Java 中的新数据集?【英文标题】:How can I add a column with a value to a new Dataset in Spark Java? 【发布时间】:2017-12-10 22:48:33 【问题描述】:

所以,我正在从 java Spark API 创建一些数据集。这些数据集使用 spark.sql() 方法从 hive 表中填充。

所以,在执行了一些 sql 操作(如连接)之后,我有了最终的数据集。我想要做的是我想向最终数据集添加一个新列,数据集中所有行的值为“1”。因此,您可能会将其视为向数据集添加约束。

所以,例如我有这个数据集:

Dataset<Row> final = otherDataset.select(otherDataset.col("colA"), otherDataSet.col("colB"));

我想向“最终”数据集添加一个新列,类似这样

final.addNewColumn("colName", 1); //I know this doesn't work, but just to give you an idea.

有没有可行的方法将新列添加到Dataset的所有行中,值为1?

【问题讨论】:

【参考方案1】:

如果你想添加一个常量值那么你可以使用lit函数

lit(Object literal)
Creates a Column of literal value.

另外,将变量名 final 更改为其他名称

Dataset<Row> final12 = otherDataset.select(otherDataset.col("colA"), otherDataSet.col("colB"));


Dataset<Row> result = final12.withColumn("columnName", lit(1)) 

希望这会有所帮助!

【讨论】:

以上是关于如何将具有值的列添加到 Spark Java 中的新数据集?的主要内容,如果未能解决你的问题,请参考以下文章

将具有默认值的列添加到 SQL Server 中的现有表

Spark数据框不添加具有空值的列

如何在 Spark/Scala 中查找具有许多空值的列

如何使用pyspark将具有多个可能值的Json数组列表转换为数据框中的列

Apache Spark:如何使用 Java 在 dataFrame 中的空值列中插入数据

如何将具有自动递增值的列添加到 mySql 数据库的表中?