首页 > 解决方案 > Spark Java 编辑列中的数据

问题描述

我想遍历火花中列的内容DataFrame并在满足特定条件时更正单元格中的数据

+-------------+
|column_title |
+-------------+
+-----+
|null |
+-----+
+-----+
|0    |
+-----+
+-----+
|1    |
+-----+

假设我想在列的值为空时显示其他内容,我尝试过

Column.when() DataSet.withColumn()

但是我找不到正确的方法,我认为没有必要转换为 RDD 并遍历它。

标签: javaapache-sparkapache-spark-sqlapache-spark-dataset

解决方案


您可以使用whenandequalTowhenand isNull

Dataset<Row> df1 = df.withColumn("value", when(col("value").equalTo("bbb"), "ccc").otherwise(col("value")));

Dataset<Row> df2 = df.withColumn("value", when(col("value").isNull(), "ccc").otherwise(col("value")));

如果您只想替换空值,那么您也可以使用naand fill

Dataset<Row> df3 = df.na().fill("ccc");

推荐阅读