2017-02-12 3 views
0

で左外部結合後にDataFrameから重複レコードを削除する方法 {col1: "val1"、col2: "val2"、col3: "val3"、.....}と入力したデータは、 input2 as acctno ^^ email_id この2つのデータセットを結合し、最後の出力を {col1: "val1"、col2: "val2"、col3: "val3"、col4:email_id}として左外部結合を行っています。 私がこれまで行ってきた以下のコードスニペットを見つけてください。spark java

DataFrame DF1 = sqlCtx.jsonRDD(JSONRDD1); 
DF1.registerTempTable("DCP"); 

DataFrame DF2 = sqlCtx.read().json(inputPath1); 
DF2.registerTempTable("IDN"); 

String joinSQL = "SELECT i.col1,i.col2,i.col3,d.email_id from " IDN i LEFT OUTER JOIN DCP d ON i.col1 = d.acctno "; 
DataFrame joinedDF = sqlCtx.sql(joinSQL); 
joinedDF.repartition(1).toJSON().saveAsTextFile("outputpath"); 

最終出力には不要な重複レコードがあります。重複レコードを削除します。 重複したレコードを削除するには、結合されたPDFにdistinct()とdropDuplicates()を試しましたが、重複したレコードを削除することはできません 出力に重複レコードがあります。入力1は、いくつかの4897件のレコードを持っている

、INPUT2は、いくつかの2198765 records.The最終出力は4897件のレコードを持っている必要がありましたが、私の場合、それは5101のレコードとして来ています。 は、私は上記の重複レコードの問題を解決するために私を助けてJava.Kindlyを使用してプログラミングするスパークに新しいです。

+0

は、あなただけの 'クエリでDISTINCT'を選択することができませんか? –

+0

それは私の目的を解決していないit..but私はまだ出力が重複したレコードを持っている.....試してみました。 –

答えて

0

ありaccntnoでいくつかの重複があります。 col1がaccntnoに重複を検出すると、目的のレコードに影響する可能性があります。異なるaccntnoだけを考慮して参加してください。