Есть ли возможность обновить список / переменную внутри udf?
Давайте рассмотрим этот сценарий:
studentsWithNewId = []
udfChangeStudentId = udf(changeStudentId, IntegerType())
def changeStudentId(studentId):
if condition:
newStudentId = computeNewStudentId() // this function is based on studentsWithNewId list contents
studentsWithNewId.append(newStudentId)
return newStudentId
return studentId
studentsDF.select(udfChangeStudentId(studentId))
Возможно ли это и безопасно в кластерной среде?
Приведенный выше код является лишь примером, поэтому, возможно, его можно переписать другим, более лучшим способом.