java - Spark Java 编辑列中的数据
问题描述
我想遍历火花中列的内容DataFrame
并在满足特定条件时更正单元格中的数据
+-------------+
|column_title |
+-------------+
+-----+
|null |
+-----+
+-----+
|0 |
+-----+
+-----+
|1 |
+-----+
假设我想在列的值为空时显示其他内容,我尝试过
Column.when()
DataSet.withColumn()
但是我找不到正确的方法,我认为没有必要转换为 RDD 并遍历它。
解决方案
您可以使用when
andequalTo
或when
and 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")));
如果您只想替换空值,那么您也可以使用na
and fill
。
Dataset<Row> df3 = df.na().fill("ccc");