У меня есть столбец String с именем field
в фрейме данных Spark, который выглядит следующим образом:
my_field_name: abc_def_ghi
Я хочу снять часть my_field_name
и просто оставить значение. Обычно я использовал бы udf и использовал функции подстроки, но мне было интересно, есть ли способ сделать это, используя функции SparkSQL, чтобы я не брал дополнительный SerDe при сериализации udf. Вот моя попытка:
.withColumn("fieldVals", split(substring($"field", instr($"field", "?"), len($"field")), ""))
Проблема в том, что split
ожидает Int
, а вместо этого я даю ему Int
Column
. Есть ли способ обойти это?