我想过滤掉“Col1”列中包含符号“的所有行。
Col1 Col2
11" A
0! Q
123456 A
252653 A
343535 A
预期结果:
Col1 Col2
123456 A
252653 A
343535 A
为此,我决定过滤掉所有非数字值:
def is_digit(value):
if value:
return value.isdigit()
else:
return False
is_digit_udf = udf(lambda value: is_digit(value), BooleanType())
df.filter(when(is_digit_udf(df["Col1"]))).show()
但是此代码失败并显示错误消息:
TypeError: when() missing 1 required positional argument: 'value'
最佳答案
when
函数相当于sql中的case when
。
因此,它不能直接在过滤器
中使用。你可以试试这个:
from pyspark.sql.functions import lit
df.filter(is_digit_udf(df["Col1"]))==lit(True)).show()
关于python - 如何过滤掉所有包含符号“的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56936404/