Dies wird ersetzen empty-value
mit None
in Ihrer name
Säule:
from pyspark.sql.functions import udf
from pyspark.sql.types import StringType
df = sc.parallelize([(1, "empty-value"), (2, "something else")]).toDF(["key", "name"])
new_column_udf = udf(lambda name: None if name == "empty-value" else name, StringType())
new_df = df.withColumn("name", new_column_udf(df.name))
new_df.collect()
Ausgang:
[Row(key=1, name=None), Row(key=2, name=u'something else')]
den alten Namen als ersten Parameter in withColumn
Durch die Verwendung ersetzt es tatsächlich die alte name
Spalte mit dem neuen, der von der UDF-Ausgabe erzeugt wird.
Ich dachte nicht daran, UDFs auszuprobieren, das scheint der richtige Weg zu sein – talloaktrees