我正在嘗試將 spark Dataframe 中的所有空值轉換為null使用:
df.withColumn(colname, when(df.col(colname).equalTo(""), null)
.otherwise(df.col(colname)));
它正在作業,但我必須對所有列執行此操作,在 java-spark 中是否還有其他方法可以檢查資料框中的所有列并將其替換為null.
uj5u.com熱心網友回復:
如果您想將該轉換應用于所有列,您可以使用df.columns()列出所有列并使用 for 回圈或stream如下類似的方式在所有列上使用相同的構造:
List<Column> list = Arrays
.stream(df.columns())
.map(colname -> functions
.when(df.col(colname).equalTo(""), null)
.otherwise(df.col(colname)))
.collect(Collectors.toList());
df.select(list.toArray(new Column[0]));
uj5u.com熱心網友回復:
您可以在資料幀列上使用 forEach 回圈并使用空操作替換。
Dataset<Row> ds = //Input dataframe;
Stream.of(ds.columns()).forEach(c -> ds.withColumn(c, when(col(c).equalTo(""), null).otherwise(col(c))));
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/375348.html
上一篇:Pyspark-Sql回圈優化
下一篇:高度分散的人
