Вам не нужно вкладывать последовательное «когда» с предложением иначе, просто вызывайте методы when и только с одним предложением иначе в конце.Проверьте это:
scala> val df = Seq((6,16,"122071304"),(6,24,"59400602"),(17,0,"44091431"),(50,0,"11183970"),(6,2,"7112224"),(0,0,"5795484"),(6,17,"4369082"),(6,18,"2977813"),(1,0,"2091200"),(6,20,"1637365"),(6,4,"1001986"),(47,0,"981261"),(6,194,"380139"),(6,25,"354766"),(6,82,"153315"),(6,152,"45541"),(6,144,"34044"),(6,26,"29071"),(41,0,"10199"),(51,0,"8993")).toDF("prot","flags","count")
df: org.apache.spark.sql.DataFrame = [prot: int, flags: int ... 1 more field]
scala> df.select($"prot",$"flags",$"count").withColumn("prot_name",when(col("prot")==="6", lit("TCP")).when(col("prot")==="17", lit("UDP")).when(col("prot") === "1", lit("ICMP")).otherwise(lit("OTH"))).show()
+----+-----+---------+---------+
|prot|flags| count|prot_name|
+----+-----+---------+---------+
| 6| 16|122071304| TCP|
| 6| 24| 59400602| TCP|
| 17| 0| 44091431| UDP|
| 50| 0| 11183970| OTH|
| 6| 2| 7112224| TCP|
| 0| 0| 5795484| OTH|
| 6| 17| 4369082| TCP|
| 6| 18| 2977813| TCP|
| 1| 0| 2091200| ICMP|
| 6| 20| 1637365| TCP|
| 6| 4| 1001986| TCP|
| 47| 0| 981261| OTH|
| 6| 194| 380139| TCP|
| 6| 25| 354766| TCP|
| 6| 82| 153315| TCP|
| 6| 152| 45541| TCP|
| 6| 144| 34044| TCP|
| 6| 26| 29071| TCP|
| 41| 0| 10199| OTH|
| 51| 0| 8993| OTH|
+----+-----+---------+---------+
scala>