Pyspark-处理异常并在pyspark数据帧中引发RuntimeError

时间:2018-01-31 20:31:57

标签: apache-spark pyspark spark-dataframe pyspark-sql apache-spark-1.6

我有一个数据框,我正在尝试根据现有列的值创建一个新列:

domain="[('date','<=', time.strftime('%%Y-12-31')),('date','>=',time.strftime('%%Y-01-01'))]"
domain="[('date','<=', time.strftime('%Y-%m-%d')),('date','>=',time.strftime('%Y-%m-01'))]"
domain="[('date','<=', datetime.datetime.combine(context_today(), datetime.time(23,59,59))), ('date','>=', datetime.datetime.combine(context_today(), datetime.time(0,0,0)))]"
domain="[('date','<=', time.strftime('2020-12-31')),('date','>=',time.strftime('2000-01-01'))]"

我想在最后的条件下实现。当条件是dfg ['list']列不属于list = [“A”,“B”,“C”中的一个元素时, “D”,“E”,“F”],我想用消息引发运行时错误。不确定如何在pyspark中这样做。另外如果我是基于条件语句创建列,即.when和.otherwise,如何使用try除了块。

我正在使用pyspark 1.6。任何帮助深表感谢。

1 个答案:

答案 0 :(得分:0)

这不是要走的路。构建控制流是针对Spark使用的SQL模型和功能模型。

如果你真的想要制动检查是否有任何“未知”的退出优雅:

if not dfg.where(dfg["min_time"] == "unknown").take(1):
    ... # Add your logic here