Рассмотрим следующий кадр данных:
l1 = [(1,2),(3,4),(5,6), (12,537)]
df1 = spark.createDataFrame(l1,['ID','col2'])
max_id=df1.agg({"ID":"max"}).collect()[0]
Переменная max_id представляет собой pyspark.sql.types.Row . Вы можете проверить это с помощью type ():
type(max_id)
Выход:
<class 'pyspark.sql.types.Row'>
Элементы pyspark.sql.types.Row доступны как словари с квадратными скобками:
max_id['max(ID)']
Итак, все, что вы хотите изменить, это ваше назначение max_id:
max_id=df1.agg({"ID":"max"}).collect()[0]['max(ID)']
type(max_id)
Выход:
<class 'int'>
max_id теперь int, который может быть увеличен:
max_id = max_id+1
Проблема с вашим кодом выше в том, что вы использовали фигурные скобки.