У меня есть датафрейм со столбцом "примечания", который содержит текст.Я хочу добавить новый столбец, проверив длину столбца примечаний.Например, если столбец примечаний имеет длину == 2, мне нужно взять split ($ "remarks", "") (1).в противном случае я возьму столбец примечаний как есть.
ex: remarks = "xxxx yyyy", я ожидаю, что count должен быть равен 2, и если это так, мне нужно принять yyyy в качестве значения в новом столбце, который мыдобавляем.
Вот код, который я пробовал, но не получаю ожидаемых результатов.
val df1 = df.withColumn("remarks1",when(length(split(col($"remarks")," ") === 2),col($"remarks").split(" ")(1)).otherwise(col($"remarks")))
С приведенным выше кодом я получаю ошибку:
Исключение в потоке "main" org.apache.spark.sql.AnalysisException: невозможно разрешить '(split (remarks
,' ') = 2)' из-за несоответствия типов данных: различные типы в '(split (remarks
,'') = 2) '(array and int). ;;'Project [примечания № 33, dv № 37, dp № 42, dv1 # 48, сиг № 55, en № 63, es № 72, длина случая ((split (примечания № 33,) = 2)), затем разделение (замечания # 33,) [1] ELSE cefversion # 33 END AS примечания1 # 107]
Может кто-нибудь помочь мне, как мне этого добиться.
Спасибо, малыш