2017-01-01 5 views
-1

たとえば、支払いデータ[DataFrameで30〜40列]があり、データ量が約4M [巨大ではない]の場合。しかし、DFでgroupByとagg演算を使用して[25〜30]の異なる計算を行う必要があります。Spark SQL - フィールドでグループ化するより良い方法

異なる計算に同じDFを使用するため、cache()を使用しています。

例DF:

country transactions 
IN  1001 
IN  1002 
UK  1003 
UK  1004 

現在、私がやっている何が私の質問私は同じことを達成することができ、他の方法は何ですかれる[スパークSQLでデータをグループ化するより良い方法かもしれ

df.groupBy("country").agg(countDisinct(transactions)) as txncnt) 

ですreduceByKey or AggregateByKey [RDD operations]?

答えて

0

したがって、groupByを使用してデータに対して操作を行う場合、おそらくreduceByKeyを直接使用する必要があります。それぞれのエグゼキュータは、計算結果を送信します。

は、私がDFに複数のフィールドをGROUPBYする必要がある場合はどう

+0

...あなたは20回のすべての計算のために使用し、それをキャッシュすることができ、グループの計算でDFを作成してみますか? – Shankar

+0

それから私は確かにそのために複数のデータフレームを作成します。 –

関連する問題