2016-12-31 7 views
1

DataFrame列の統計情報(ジニ係数)を検索しようとしていますが、特定の列のすべての値を渡す必要があります統計量(ジニ係数)を計算します。関数に値のリストとして効率的に大きなDataFrame列を送信する方法

ここで、統計関数は「値のリスト」を想定して整数を返します。 DataFrame列から値の一覧を収集するために、以下の2つのアプローチを試しました。

アプローチ1:

  1. は、データフレームから列を選択します。
  2. RDDに隠します。
  3. 各値を(1、値)
  4. にマッピングし、すべての値を集計します。
  5. 集計値を統計関数に送信して統計を計算します。

アプローチ2:

  1. DATAFRAMEから列を選択します。
  2. RDDに隠します。
  3. 集計アクションを実行して値を集計します。
  4. 集計値を統計関数に送信して統計を計算します。

しかし、どちらのアプローチも非常に遅いようです。

提案や他の方法で効率的に共有してください。

よろしく、 Neeraj

答えて

0

データがソートされ、負でもゼロを持っていない場合は、あなたがこのページで説明した第3の式を使用してジニ係数を計算することができます:

http://www.statsdirect.com/help/default.htm#nonparametric_methods/gini.htm

実施中Pythonはhttps://github.com/oliviaguest/giniにあります。

データフレームのdf.groupBy().sum()操作を使用して合計を計算するのは簡単ではありません。

関連する問題