我想基于行中任意数量的其他列的值来设置sparkDataframe中的列的值。
我意识到我可以这样做:
df.withColumn("IsValid", when($"col1" === $"col2" && $"col3" === $"col4", true).otherwise(false))
但对于20+列的Dataframe,必须有更好的方法来实现这一点。
该行包含偶数个列,为了知道“isvalid”列是否正确,应该成对检查这些列 true
或者 false
.
我想基于行中任意数量的其他列的值来设置sparkDataframe中的列的值。
我意识到我可以这样做:
df.withColumn("IsValid", when($"col1" === $"col2" && $"col3" === $"col4", true).otherwise(false))
但对于20+列的Dataframe,必须有更好的方法来实现这一点。
该行包含偶数个列,为了知道“isvalid”列是否正确,应该成对检查这些列 true
或者 false
.
2条答案
按热度按时间4urapxun1#
您可以尝试将列列表Map并减少到所需的条件:
vfh0ocws2#
将列成对分组并构造when函数的条件的另一种方法: