Spark Java编辑列中的数据

2019年10月14日 22点热度 0条评论

我想遍历spark DataFrame中列的内容,并在满足特定条件的情况下更正单元格中的数据

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

假设我想在column的值为null时显示其他内容,


Column.when()
DataSet.withColumn()

但是我找不到正确的方法,我认为没有必要转换为RDD并对其进行迭代。

解决方案如下:

您可以使用whenequalTowhenisNull

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
fill

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