Scala 如何从RDD中获取包含任意数字的行数

Scala 如何从RDD中获取包含任意数字的行数,scala,apache-spark,Scala,Apache Spark,文件行如下: I am 12 year old. I go to school. I am playing. Its 4 pm. 文档中有两行包含数字。我想数一数文档中有多少行有数字 这将在scala spark中实现 val lineswithnum=linesRdd.filter(line=>(line.contains([^0-9])).count() 我期望输出为2。但是我得到了0您可以使用exists方法: val lineswithnum=linesRdd.filter(l

文件行如下:

I am 12 year old.

I go to school.

I am playing.

Its 4 pm.
文档中有两行包含数字。我想数一数文档中有多少行有数字

这将在scala spark中实现

val lineswithnum=linesRdd.filter(line=>(line.contains([^0-9])).count()

我期望输出为2。但是我得到了0

您可以使用
exists
方法:

val lineswithnum=linesRdd.filter(line=>line.exists(u.isDigit)).count()

与您最初的方法一致,并且不打折其他答案:


添加了.*以便在一行字符串中捕获。

过滤器(cond).count()
可以替换为
计数(cond)
@MikhailIonkin,在哪个版本中?似乎没有超载。我是否错过了一些暗示(没有尝试过…?@MikhailIonkin啊,的确,标题被更改了。。。我没有注意到@AndreyTyukin,对不起,我认为这是普通的收藏,比如说,不是RDD。蓝色幻影说他改变了一些东西,标题与问题不符。现在它与文本匹配,但回头看可能是否定的,即4的两种方式,答案都是2。你的问题和标题不同,我正在更改。我很惊讶没有解释的学分。
val textFileLines = sc.textFile("/FileStore/tables/so99.txt")
val linesWithNumCollect = textFileLines.filter(_.matches(".*[0-9].*")).count