Pyspark:帮助过滤掉任何有不需要的字符的行

时间:2017-08-20 09:32:01

标签: python pyspark

写入镶木地板文件会给我一个错误,指出不允许" ,;{}()\n\t="个字符。

我想在任何地方删除包含任何这些字符的行。

我会使用“喜欢”,“喜欢”还是其他什么?

我试过这个:

df = df.filter(df.account_number.rlike('*\n*', '*\ *','*,*','*;*','*{*','*}*','*)*','*(*','*\t*') == False)

显然这不起作用。我不确定正确的正则表达式语法是什么,或者在这种特殊情况下我是否需要正则表达式。

1 个答案:

答案 0 :(得分:1)

你会使用rlike,因为它是正则表达式:

 
df.filter(~df.account_number.rlike("[ ,;{}()\n\t=]"))

当您在[]之间放置字符时,它表示以下任何字符。

我不明白为什么在数据帧行中不允许使用这些字符,而是在列名中可能存在无效字符。您可以使用.withColumnRenamed()重命名它。