过滤掉任何使用spark和scala不能正确解析的记录

mgdq6dx1  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(412)

我有一个包含几行的txt文件。参见下面两行的示例:

2014-03-15:10:10:20,Sorrento F41L,8cc3b47e-bd01-4482-b500-28f2342679af,7,24,39,enabled,disabled,connected,55,67,12,33.6894754264,-117.543308253
2014-03-15:10:10:20|MeeToo 1.0|ef8c7564-0a1a-4650-a655-c8bbd5f8f943|0|31|63|70|39|27|enabled|enabled|enabled|37.4321088904|-121.485029632

如您所见,第一行用逗号分隔,而第二行用管道分隔。该文件包含许多行,其中一些是逗号分隔的,另一些是管道分隔的。
我需要做的是过滤掉所有没有正确解析的记录(即每个正确解析的记录/行应该正好有14个值/字段)
首先,我使用sc.textfile(“/path/filename.txt”)读取文件,但不知道如何继续。

sauutmhj

sauutmhj1#

可能是这样的

sc.textFile("/path/filename.txt").map( _.split("[|,]") ).filter( _.length == 14 )

相关问题