如何筛选数值列中的字符串

dy1byipe  于 2021-07-14  发布在  Spark
关注(0)|答案(2)|浏览(325)

我试图过滤掉spark df,只在数字字段中显示文本值,因为数据是非结构化的。
不太清楚如何在上面的场景中使用下面的代码:

sparkdf = sparkdf.filter(col("colToFilter") <evaluation>)

如果要在sql中尝试类似的操作,我将执行以下操作:

SELECT * FROM tbl
WHERE col NOT LIKE '%[0-9]%'

当前表的示例如下所示:

|RefId|
|0|
|1|
|1|
|1|
|RefNum2|
|1|

我只想显示“refnum2”作为输出。
我真的很感激任何帮助。
谢谢您。

gorkyyrv

gorkyyrv1#

你可以使用 rlike 过滤如下:

df.filter("RefId NOT RLIKE '^[0-9]+$'").show()
+-------+
|  RefId|
+-------+
|RefNum2|
+-------+

import pyspark.sql.functions as F

df.filter(~F.col("RefId").rlike("^[0-9]+$")).show()
+-------+
|  RefId|
+-------+
|RefNum2|
+-------+
uplii1fm

uplii1fm2#

最简单的请求:从tbl1中选择*from col regexp('[a-z]');

相关问题