TypeError: El objeto ‘DataFrame’ no admite la asignación de ítems al usar la división.
TypeError: El objeto ‘DataFrame’ no admite asignación de elementos al usar la división.
Dividiendo dos columnas enteras en un DataFrame de PySpark y recibiendo este error. ¿Alguna idea?
Reproducible:
simpleData = (((1, 2), (2, 6), (3, 6))
columns= ["sales","users"]
df = spark.createDataFrame(data = simpleData, schema = columns)
df = df.withColumn("users", df["users"].cast(IntegerType()))
df = df.withColumn("sales", df["sales"].cast(IntegerType()))
df['buy_rate'] = df['sales']/ df['users']
davy.ai
El problema está en la línea “df[‘buy_rate’] = df[‘sales’]/ df[‘users’]”. A diferencia de un dataframe regular de Pandas, un dataframe de PySpark no admite la asignación de elementos, por lo tanto se produce el TypeError.
En su lugar, puede utilizar el método “withColumn” para crear una nueva columna con los resultados de la división. Puede hacerlo de la siguiente manera:
Esto debería crear una nueva columna en el dataframe llamada “buy_rate” con valores iguales a la división de “sales” por “users”.