Scala 如何使用spark中的过滤功能卸下收割台?
我想从文件中删除头。但是,由于文件将被分割成多个分区,我不能只删除第一项。所以我使用了一个过滤函数来计算它,下面是我使用的代码:Scala 如何使用spark中的过滤功能卸下收割台?,scala,apache-spark,Scala,Apache Spark,我想从文件中删除头。但是,由于文件将被分割成多个分区,我不能只删除第一项。所以我使用了一个过滤函数来计算它,下面是我使用的代码: val noHeaderRDD = baseRDD.filter(line=>!line.contains("REPORTDATETIME")); 我得到的错误是“error not found value line”,这段代码有什么问题 使用textFile如下: val rdd = sc.textFile(<<path>>) rdd
val noHeaderRDD = baseRDD.filter(line=>!line.contains("REPORTDATETIME"));
我得到的错误是“error not found value line”,这段代码有什么问题 使用
textFile
如下:
val rdd = sc.textFile(<<path>>)
rdd.filter(x => !x.startsWith(<<"Header Text">>))
我认为没有人回答这个显而易见的问题,因此行。包含也有可能:
val noHeaderRDD = baseRDD.filter(line => !(line contains("REPORTDATETIME")))
您就快到了,只是一个语法问题,但这当然很重要 你检查过这个问题吗?如果是,你的有什么不同?是的。实际上,我的标题不是一个标准模式,它只是另一行,但字段定义了不同的类别。我不确定我是否理解您的解释。请你复习一下好吗?添加一个包含一些输入和预期输出的示例。如果我已经从文件中加载了数据并创建了一个RDD,现在想创建另一个RDD,从中获取一部分数据并删除其中的标题,该怎么办?提供您的示例输入文件和预期输出使用spark.read的最后一个选项会产生一些您不知道的副作用提到
val noHeaderRDD = baseRDD.filter(line => !(line contains("REPORTDATETIME")))