我正在从CSV文件中读取DataFrame
,如下所示:
val rawData = sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "false")
.option("inferSchema", "true")
.load(url)
然后,我试图按以下标准过滤它:
每行的第一个元素应该是包含AAA
或BBB
的字符串。
为此,我有代码:
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")))
我做错了什么?
答案 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|
+------+---+