PySpark - das Hinzufügen einer Spalte aus einer Liste von Werten mithilfe einer UDF

Habe ich auf Spalte hinzufügen, um eine PySpark dataframe auf der Grundlage einer Liste von Werten.

a= spark.createDataFrame([("Dog", "Cat"), ("Cat", "Dog"), ("Mouse", "Cat")],["Animal", "Enemy"])

Habe ich eine Liste namens rating, die Bewertung jedes Haustier.

rating = [5,4,1]

Muss ich anfügen das dataframe mit einer Spalte namens " Rating, so dass

+------+-----+------+
|Animal|Enemy|Rating|
+------+-----+------+
|   Dog|  Cat|     5|
|   Cat|  Dog|     4|
| Mouse|  Cat|     1|
+------+-----+------+

Habe ich Folgendes getan aber es ist wieder nur der erste Wert in der Liste in der Spalte Bewertung

def add_labels():
    return rating.pop(0)

labels_udf = udf(add_labels, IntegerType())

new_df = a.withColumn('Rating', labels_udf()).cache()

out:

+------+-----+------+
|Animal|Enemy|Rating|
+------+-----+------+
|   Dog|  Cat|     5|
|   Cat|  Dog|     5|
| Mouse|  Cat|     5|
+------+-----+------+
Schreibe einen Kommentar