首页 > 解决方案 > 使用 withColumns 创建派生列时的“空”列

问题描述

在我的数据框中,我有一个名为parent_asset_xid.

我想创建一个新列parent_asset_sk,它将是md5(parent_asset_xid)00000000-0000-0000-0000-000000000000如果parent_asset_xidnull

我正在尝试这样的事情,但我不确定如何将md5部分集成到这个

mydf.withColumn(
  "parent_asset_sk",
  when($"parent_asset_xid".isnull, "00000000-0000-0000-0000-000000000000")
)

标签: scaladataframe

解决方案


你已经涵盖了大部分内容,你只需要添加一个otherwise给你when

val newDF = yourDF.withColumn(
  "parent_asset_sk",
  when(
    col("parent_asset_xid").isNotNull, 
    md5(col("parent_asset_xid"))
  ).otherwise(lit("00000000-0000-0000-0000-000000000000"))
)

推荐阅读