Отфильтруйте значения null
перед pivot
Проверьте код ниже.
scala> df.show(false)
+------+----+
|source|type|
+------+----+
|a |null|
|a |aa |
|a |bb |
|a |cc |
+------+----+
scala> df
.filter($"type".isNotNull)
.groupBy($"source")
.pivot($"type")
.agg(count($"type"))
.show(false)
+------+---+---+---+
|source|aa |bb |cc |
+------+---+---+---+
|a |1 |1 |1 |
+------+---+---+---+