我有一个使用pyspark.sql.functions.create_map创建的map列。我正在执行一些操作,这些操作要求我在此map列中查找,如下所示。
pyspark.sql.functions.create_map
map
lookup_map[col("col1")]
如果lookup_map列中不存在一个值,我希望它返回一个默认值,如何实现呢?
lookup_map
pjngdqdw1#
使用coalesce:
coalesce
F.coalesce(lookup_map[col("col1")], F.lit("default"))
例如对于以下Map
mapping = {'1': 'value'} mapping_expr = F.create_map([F.lit(x) for x in chain(*mapping.items())])
和输入DF:
产出
df.withColumn("value", F.coalesce(mapping_expr[F.col("id")], F.lit("x"))).show()
将为:
1条答案
按热度按时间pjngdqdw1#
使用
coalesce
:例如
对于以下Map
和输入DF:
产出
将为: