из вашего кода, я заметил, уровень, кажется, датафрейм, а не переменная. Следовательно, он выдает ошибку.
Так как вы указали, как показано ниже, он возвращает фрейм данных только без переменной:
level =dfScore .where((col("DataField") == "Amount")).select(dfScore ["level"])
Однако из вашего кода я понимаю, что вы хотите присвоить значение для нового столбца «Уровень» со значением старого уровня столбца, если он удовлетворяет следующему условию col («DataField») == «Amount» иначе Null. Если это так, вы можете написать свой код, используя когда условие, как показано ниже:
ScoreCal1 = ScoreCal1.withColumn("Level",when(col("DataField") == "Amount",dfScore ["level"]))