У меня один набор данных в приложении spark имеет следующую форму:
some_id class city
1 A ROME
1 A undefined
1 A ROME
1 null ROME
2 B MILAN
2 B unkown
2 B MILAN
2 unknown MILAN
3 C PALERMO
3 C PALERMO
3 C null
3 null PALERMO
И полученный набор данных должен выглядеть следующим образом:
some_id class city
1 A ROME
1 A ROME
1 A ROME
1 A ROME
2 B MILAN
2 B MILAN
2 B MILAN
2 B MILAN
3 C PALERMO
3 C PALERMO
3 C PALERMO
3 C PALERMO
Я пробовал базовый способ циклов, ноЯ нашел это не практичным, каков наилучший способ сделать это?
вот что я пытался сделать:
String[] columnsNames = {"class", "city"};
for (String columnName : columnsNames) {
Dataset<Row> grouped = mydataset.groupBy(col("some_id"), col(columnName)).agg(functions.count("*").alias("itemCount"));
grouped = grouped
.where(not(col(columnName).equalTo("null")))
.groupBy(col("some_id"))
.agg(functions.max(col("itemCount")))
;
grouped.show();
...etc
}