【问题标题】:filter DataFrame with Regex with Spark in Scala在 Scala 中使用带有 Spark 的 Regex 过滤 DataFrame
【发布时间】:2016-03-02 02:28:09
【问题描述】:

我想过滤掉 Spark DataFrame 中具有看起来像真实的电子邮件列的行,这是我尝试过的:

df.filter($"Email" match {case ".*@.*".r => true case _ => false})

但这不起作用。正确的做法是什么?

【问题讨论】:

标签: regex scala apache-spark spark-dataframe


【解决方案1】:

要扩展 @TomTom101 的评论,您要查找的代码是:

df.filter($"Email" rlike ".*@.*")

match 不起作用的主要原因是因为DataFrame 有两个filter functions,它们采用字符串或列。这与 RDD 不同,filter 将函数从 T 转换为布尔值。

【讨论】:

  • Matthew,这段代码在 Spark REPL 中有效,但在我的主文件中无效。我需要什么导入来运行它?
  • @BruceWayne,REPL 为您配置了一些您需要在应用程序中自行配置的东西。所以有两个问题:1)您的函数是否适用于更简单的操作(例如,您可以成功创建和计算数据帧)? 2) 你是否为你的 REPL 运行相同的 Spark 版本以及在哪里运行主文件?
  • 马修,你是对的。我需要添加val sqlContext= new org.apache.spark.sql.SQLContext(sc)import sqlContext.implicits._
猜你喜欢
  • 1970-01-01
  • 2016-05-25
  • 2023-03-26
  • 2019-02-26
  • 2020-09-17
  • 1970-01-01
  • 2018-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多