2017-12-27 26 views
0

私はApacheテーブルにDBテーブルをインポートしたところで問題を解決しています。Apache Sparkのデータフレームのメジアン値を見つけるには

私はそれをDataFrameに変換しました。次に、RegisterTempTableを実行して、ハイブクエリを使用できるようにしました。

私はAmountと呼ばれるフィールドの中央値を見つけることができませんよしかし

sqlContext.sql("select avg(Amount) from Table1001").show 

、などの他の数学演算を実行することができますよ。このDataFrameの中央値を見つける方法はありますか?

適切に適切な溶液を用意してください。

+0

あなたはどのように見つけるかを使用することができます中央値?ステップ1 - ソート。ステップ2 - 中央の要素を選択します。 –

+0

[Apache Sparkで正確な中央値を計算するにはどうすればよいですか?](https://stackoverflow.com/questions/28158729/how-can-i-calculate-exact-median-with-apache-spark) – philantrovert

+0

可能な重複[スパークを使用したメジアンとクオンタイルの検索方法](https://stackoverflow.com/questions/31432843/how-to-find-median-and-quantiles-using-spark) – user8371915

答えて

0

あなたは::この操作は近似解ではなく、正確な1のために最適化され、中央値を計算する

val medianArray = yourDataFrame.stat.approxQuantile("Amount", Array(0.5), 0) 

val median = medianArray(0) 

注意をDataFrameStatFunctions.approxQuantileを使用することができます。しかし、我々は正確な解決策を提供したいので、relativeError = 0を提供します。この操作は高価になる可能性があります。

+0

エラーメッセージ:error:value approxQuantileはorg.apache.spark.sql.DataFrameStatFunctionsのメンバーではありません。パッケージをインポートする必要はありますか? –

+0

スパークバージョン?これはSpark 2.0で追加されました。 –

関連する問題