如何将具有值的列添加到 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 中的新数据集?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用pyspark将具有多个可能值的Json数组列表转换为数据框中的列