Я хочу запустить пользовательскую функцию для столбца данных. Столбец содержит длинную строку, которая содержит некоторую информацию об открытом или нажатом. Формат строки примерно такой в столбце Path:
+---------------------------------------------------------------+
| Path|
+---------------------------------------------------------------+
|/utility/tracking/opened/50DD3254-BA1D-4D0B-ADB5-6529E9C90982/0|
|/utility/tracking/tracking/ClickedUrl |
+---------------------------------------------------------------+
и исходный фрейм данных выглядит следующим образом
введите описание изображения здесь
Теперь я запускаю следующую пользовательскую функцию pyspark, чтобы применить ее к столбцу «путь», который находит «открыт» или «щелкнул» столбец и дает мне новый фрейм данных со столбцом «путь», который имеет значения 10 или 20, в зависимости от нуля открыто нажал или еще условие
def clickopen(x):
if 'opened' in x.lower().split('/'):
print(10)
elif 'clickedurl' in x.lower().split('/'):
print(20)
else:
print('null')
hunter = udf(clickopen)
new_df = new_df.withColumn("Path", hunter("Path"))
new_df.show(n=20)
И показанные результаты равны нулю в столбце «Путь» вместо значения 10 или 20
введите описание изображения здесь
Нужна небольшая помощь в получении целочисленных значений, и, пожалуйста, посоветуйте, если я делаю что-то не так, что было бы очень признательно. Заранее спасибо