问题描述
我初始化了一个 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...|
+---+--------------------+
让我们将 filter
与 PySpark 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....|
+---+--------------------+