我有一个数据框,我正在尝试根据现有列的值创建一个新列:
dfg = dfg.withColumn("min_time",
F.when(dfg['list'].isin(["A","B"]),dfg['b_time'])
.when(dfg['list']=="C",dfg['b_time'] +2)
.when(dfg['list']=="D",F.when(dfg['b_time']==0,lit(10)).otherwise(2*dfg['b_time'])).when(dfg['list'].isin(['E','F']),dfg['b_time']).when(dfg['list'].isin(["A","B","C","D",'E','F'])==False,lit('unknown category'))
.otherwise('unknown'))
我想在最后一个 .when 条件中实现的是,如果列 dfg['list'] 值不属于列表中的元素之一 = ["A","B","C","D" ,'E','F'],我想用一条消息引发运行时错误。不确定如何在 pyspark 中执行此操作。此外,如果我基于条件语句创建列,即 .when 和 .otherwise,如何使用 try except 块。
我正在使用 pyspark 1.6。任何帮助深表感谢。