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