我有一个从.csv文件(此处由ds
模仿)加载的数据集,该数据集包含两行:一行带有文章的发布日期(publishDate
),另一行带有提到的名称和它们在该文章(allNames
)中的字符偏移量。
我正在尝试计算每天提到一个名字的次数,我认为从映射{ex1}开始,通过映射正则表达式操作来消除字符偏移将是一件好事。看一下代码:
allNames
当我致电import org.apache.spark.sql._
import org.apache.spark.sql.types._
case class Data(publishDate: String, allNames: String)
val ds = Seq(Data("01-01-2018", "Channel One,628;Channel One,755;Channel One,1449;Channel One"),
Data("01-02-2018", "Waite Park,125;City Food,233;Adobe Flash Player,348;Charter Channel,554")).toDS()
val pattern = """([^\;\,]+),\d+""".r
val processed_ds = ds.map(data => (data.publishDate, (for (m <- pattern.findAllMatchIn(data.allNames)) yield m.group(1)).toList))
时,会给出完整的错误列表。
这是怎么回事?
注意:我是Scala的新手。
编辑:
processed_ds.collect().foreach(println)
的预期输出为:
processed_ds.collect().foreach(println)
还是通过某种拆分操作更容易实现?