Exception handling 在Spark中处理映射函数中的坏项
在Spark中处理映射函数异常的优雅方法是什么 例如:Exception handling 在Spark中处理映射函数中的坏项,exception-handling,apache-spark,pyspark,Exception Handling,Apache Spark,Pyspark,在Spark中处理映射函数异常的优雅方法是什么 例如: exampleRDD= ["1","4","7","2","err",3] exampleRDD=exampleRDD.map(lambda x: int(x)) 这将不起作用,因为它将在“err”项上失败 我怎样才能过滤出有缺陷的行并在其余行上执行map,而不必预料到在每一行中会遇到什么样的错误 我们可以做一些类似于定义函数的事情: def stringtoint(x): try: a=int(x) ex
exampleRDD= ["1","4","7","2","err",3]
exampleRDD=exampleRDD.map(lambda x: int(x))
这将不起作用,因为它将在“err”项上失败
我怎样才能过滤出有缺陷的行并在其余行上执行map,而不必预料到在每一行中会遇到什么样的错误
我们可以做一些类似于定义函数的事情:
def stringtoint(x):
try:
a=int(x)
except:
a=-99
return a
然后过滤/映射。但这看起来并不像可能的那么优雅。您可以直接应用过滤器,然后映射 scala代码示例
exampleRDD.filter(r=>NumberUtils.isNumber(r)).map(r=> int(r))
或者使用平面图
exampleRDD.flatMap(r=> {if (NumberUtils.isNumber(r)) Some(int(r)) else None})
您可以直接应用过滤器然后映射 scala代码示例
exampleRDD.filter(r=>NumberUtils.isNumber(r)).map(r=> int(r))
或者使用平面图
exampleRDD.flatMap(r=> {if (NumberUtils.isNumber(r)) Some(int(r)) else None})
您可以直接应用过滤器然后映射 scala代码示例
exampleRDD.filter(r=>NumberUtils.isNumber(r)).map(r=> int(r))
或者使用平面图
exampleRDD.flatMap(r=> {if (NumberUtils.isNumber(r)) Some(int(r)) else None})
您可以直接应用过滤器然后映射 scala代码示例
exampleRDD.filter(r=>NumberUtils.isNumber(r)).map(r=> int(r))
或者使用平面图
exampleRDD.flatMap(r=> {if (NumberUtils.isNumber(r)) Some(int(r)) else None})