所以我一直在使用udf
函数在某些逻辑上创建一个额外的列,如果有任何错误,我使用try/catch
并返回None
。
因此,在处理多个文件时,几乎没有文件,整个记录的值为None
。例如 -
def func(response):
try:
a = json.loads(response)
b = a['body']['xyz']
return b
except:
return None
_func = udf(func)
df = df.withColumn('new_col', _func(df.response))
让我们说这是我的转型阶段和下一阶段。我从10个文件加载这个数据创建表,运行时几个文件失败 -
SELECT new_col from table_created_from_this_df
因为它只包含空值,但情况是这样吗?
Error: alysisException: u"cannot resolve 'new_col' given input columns