Если у вас разное количество разделителей, а не только 3 для каждой строки, вы можете использовать следующее:
Ввод:
+-------+
|value |
+-------+
|a,b,c |
|d,e,f,g|
+-------+
Решение
import pyspark.sql.functions as F
max_size = df.select(F.max(F.length(F.regexp_replace('value','[^,]','')))).first()[0]
out = df.select([F.split("value",',')[x].alias(f"Col{x+1}") for x in range(max_size+1)])
Выход
out.show()
+----+----+----+----+
|Col1|Col2|Col3|Col4|
+----+----+----+----+
| a| b| c|null|
| d| e| f| g|
+----+----+----+----+