如何在过滤器pyspark RDD中过滤掉以“ URL”开头的行

问题描述

我初始化了一个 pyspark sc。

task1 = (text.filter(lambda x: len(x)>0 )) # to filter empty lines
task1.collect()

我的目标是过滤掉此文本片段中以“URL”开头的行:

['网址:http://www.nytimes.com/2016/06/30/sports/baseball/washington-nationals-max-scherzer-baffles-mets-completing-a-sweep.html','华盛顿——尽管他们的进攻陷入困境,但在上赛季的前半段,出色的投球让大都会队保持了稳定。

如何使用 pyspark 语法轻松完成此操作?

解决方法

你可以使用正则表达式

GC.@preserve
,

问题需要样本输入和输出。我假设提供的数据是表中的行。如果不是这种情况,很高兴在澄清后更改答案。如果是的话;

说数据是;

+---+--------------------+
|SID|           Attribute|
+---+--------------------+
|  1|[URL: http://www....|
|  2|scherzer-baffles-...|
|  3|kept the Mets afl...|
+---+--------------------+

让我们将 filterPySpark expr() 一起使用;在数据框中执行类似 SQL 的表达式的 SQL 函数

from pyspark.sql.functions import *
df.filter(expr("Attribute like '[__%'")).show()#Finds any values that start with "[" and are at least 3 characters in length

+---+--------------------+
|SID|           Attribute|
+---+--------------------+
|  1|[URL: http://www....|
+---+--------------------+