【发布时间】:2018-01-30 02:22:13
【问题描述】:
是否可以对数据框执行一组操作(添加新列、替换一些现有值等)并且不会在第一个失败的行上快速失败,而是执行完整的转换并单独返回已处理错误的行?
示例: 更像是伪代码,但思路一定要清楚:
df.withColumn('PRICE_AS_NUM', to_num(df["PRICE_AS_STR"]))
to_num - 是我将字符串转换为数字的自定义函数。
假设我有一些价格无法转换为数字的记录 - 我想在单独的数据框中获取这些记录。
我看到了一种方法,但它会使代码有点难看(而且效率不高): 使用 try catch 进行过滤 - 如果发生异常 - 将这些记录过滤到单独的 df.. 如果我有很多这样的转换怎么办......有更好的方法吗?
【问题讨论】:
-
您能否提供一个小示例,其中包含一些示例输入、操作、它们为什么会失败以及所需的输出?请参阅this post。
-
你可以做一个原生的python try/except
-
@pault,添加示例。
-
@pratiklodha 我无法完成整个过程 - 它会在第一次记录时失败。我都想要。
标签: apache-spark pyspark apache-spark-sql