使用Scala和Apache Spark进行过滤
问题描述:
我创建了一个包含一些列的未标记数据集。其中一列的值是法国,德国,法国和英国使用Scala和Apache Spark进行过滤
我知道如何使用下面的代码进行过滤和计数。
val b =data.filter(_.contains("France")).count
但是,我不知道如何计算法国以外的值。
我想下面的代码,但它给我错误的结果
val a =data.filter(x=>x!="France").count
PS:我的问题是类似Is there a way to filter a field not containing something in a spark dataframe using scala?一点,但我正在寻找一些简单的答案。
答
您正试图过滤那些等于“法国”的元素。 试试这个
val a=data.filter(!_.contains("France")).count
答
要cricket_007的点,应该是这样的
val myDSCount = data.filter(row => row._1 != "France").count()
我不知道你的数据是在什么样的列,所以row._1会更改为正确的号码。您可以运行以下命令以查看所有列:
data.printSchema
你怎么知道这是不正确的?它是否返回所有记录的数量? –
它返回5而不是2 – neoguy
这种情况下'data'或'_'是什么?您需要检查数据框中某行的特定列是否与“法国”不相等。你不应该检查一行是否包含“法国”。 –