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



我正试图过滤掉我的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";作为输出。

如果有任何帮助,我将不胜感激。

谢谢。

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

您可以使用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|
+-------+

最新更新