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

时间:2017-07-06 19:18:21

标签: java apache-spark dataset apache-spark-dataset bigdata

所以,我正在从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.

是否有可行的方法将新列添加到数据集的所有行,值为1?

1 个答案:

答案 0 :(得分:11)

如果要添加常量值,可以使用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)) 

希望这有帮助!