2016-08-02 463 views
-1

我創建了一個包含一些列的未標記數據集。其中一列的值是法國,德國,法國和英國使用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?一點,但我正在尋找一些簡單的答案。

+0

你怎麼知道這是不正確的?它是否返回所有記錄的數量? –

+0

它返回5而不是2 – neoguy

+1

這種情況下'data'或'_'是什麼?您需要檢查數據框中某行的特定列是否與「法國」不相等。你不應該檢查一行是否包含「法國」。 –

回答

1

您正試圖過濾那些等於「法國」的元素。 試試這個

val a=data.filter(!_.contains("France")).count 
1

要cricket_007的點,應該是這樣的

val myDSCount = data.filter(row => row._1 != "France").count() 

我不知道你的數據是在什麼樣的列,所以row._1會更改爲正確的號碼。您可以運行以下命令以查看所有列:

data.printSchema