2017-01-20 3 views
0

複数の行のデータフレームがあります。列に基づいて、各列の値を比較して列名を探します。Sparkデータフレームの複数の列値の比較

たとえば DF - ID、名前、住所、通り、都市、国、郵便番号 IDに基づいて、矛盾しているフィールドを見つけたいと思います。ここで

Seq(1,aaa,no55,melbourne,australia,00001) 
Seq(1,aaa,no55,melbourne,australia,00002) 
Seq(2,aaa,no55,melbourne,australia,00001) 
Seq(2,aaa,no55,melbourne,australia,00001) 

、郵便番号は、私はそのデータフレームに50列を確認したいので、より効率的な方法でこれを行うにはどのようにID = 1

に矛盾があります。進歩をありがとう。

+0

のレコードを異なったでしょう、あなたの入力データを比較することができたと行の任意のセットはありますか?はいの場合は、いくらか – FaigB

+0

はいFaigB、これはID列に基づいています。複数の同じID列が比較されます。 – Rajan

答えて

-1

使用df.groupBy("all your columns here").count().filter("count = 1").showは、それはあなたのすべてが、少なくとも1つの列

+0

こんにちは、私は下のクエリを使用して上記のクエリを理解しています。行全体を与えるだろうが、私の見解は、Zipcode(00002)のような正確な列と対応する値を取得する必要があります DF.where(col( "status "(" RULE1 ")) .where(col(" RULE1 ")).isin(" YY "、" XX "))groupBy(" ref_no ") .agg(countDistinct ").gt(1)) – Rajan

関連する問題