过滤DataFrame

时间:2016-07-13 08:28:00

标签: scala apache-spark dataframe

我正在从CSV文件中读取DataFrame,如下所示:

val rawData = sqlContext.read
  .format("com.databricks.spark.csv")
  .option("header", "false")
  .option("inferSchema", "true")
  .load(url)

然后,我试图按以下标准过滤它: 每行的第一个元素应该是包含AAABBB的字符串。 为此,我有代码:

val filteredData = rawData.filter(me => (me(0).toString.contains("AAA") || me(0).toString.contains("BBB")))

但是,我收到此错误:

Error:(104, 41) missing parameter type
    val filteredData = rawData.filter(me => (me(0).toString.contains("AAA") || me(0).toString.contains("BBB")))

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您需要以不同的方式使用过滤器。尝试这样的事情:

val dataArray = Array(("AAA", 1), ("ABC", 2), ("ABCBBB", 3))
val rawData: DataFrame = sqlContext.createDataFrame(dataArray)

rawData.filter(rawData("_1").contains("AAA") || rawData("_1").contains("BBB")).show()

结果将是:

+------+---+
|    _1| _2|
+------+---+
|   AAA|  1|
|ABCBBB|  3|
+------+---+