У меня есть фрейм данных spark, который содержит содержимое файла json.Мне нужно создать новый столбец, который заполняется условно на основе содержимого другого столбца.
Допустим, у меня есть столбец, содержащий некоторые числа, и мой новый столбец будет заполняться в зависимости от значения этих номеров (например,: первый столбец имеет номер меньше 5, мой новый столбец будет заполнен строкой «меньше пяти», если значение больше 5, новый столбец будет заполнен значением «больше пяти).
Я знаю, что могу сделать что-то подобное с помощью функции when:
file.withColumn('newcolumn', \
F.when(file.oldColumn < 5, 'Lower than five') \
.when(file.oldColumn > 5, 'Greater than five').show()
, но что если в 'oldColumn' нет только целых чисел, но он содержит строку, из которой мне нужно извлечь целое число:
например, «PT5M», и мне нужно извлечь 5, и мне нужно рассмотреть строку типа «PTM», которая не содержит число как 0
Пока мне удается извлечь число длямой первый столбец с использованием regexp_extract, но я пытаюсь превратить нулевые значения в пример 0
, где 1 - исходный столбец, а 2 -новый столбец:
+-------+-------------------+
|1 | 2 |
+-------+-------------------+
|PT5M | Lower than five |
|PT10M | Greater than five|
|PT11M | Greater than five|
+-------+-------------------+
Спасибо за помощь!