Я сталкивался с этим вопросом, отвечая на ваш самый новый.
Предположим, у вас есть df
как
+--------------------+
| myfield|
+--------------------+
|[00, 8F, 2B, 9C, 80]|
| [52, F4, 92, 80]|
+--------------------+
Теперь вы можете использовать следующую лямбда-функцию
def func(val):
return int("".join(val), 16)/1000000
func_udf = udf(lambda x: func(x), FloatType())
И для создания вывода используйте
df = df.withColumn("myfield1", func_udf("myfield"))
Это дает,
+--------------------+--------+
| myfield|myfield1|
+--------------------+--------+
|[00, 8F, 2B, 9C, 80]| 2402.0|
| [52, F4, 92, 80]| 1391.76|
+--------------------+--------+