SparkSQLリファレンス第四部、関数編・集計関数です。
集計関数
SQL関数の花形、集計関数です。
基本的にはGROUP BYと一緒に使用します。
※GROUP BYを使用しないとグルーピングを伴わない集計になり、全件カウントなどに使います。
関数 | 内容 | ver. |
---|---|---|
approxCountDistinct |
approxCountDistinct(e: Column) approxCountDistinct(columnName: String) approxCountDistinct(e: Column, rsd: Double) approxCountDistinct(columnName: String, rsd: Double) グルーピング内のアイテム数の近似値を返します。 アイテム数が少ない場合は正確な値を返します。アイテム数が多い場合に近似値となります。 第2引数に相対標準偏差(RSD)を指定し、近似の許容度を設定することもできます。 sql: select approxCountDistinct( e ) from table group by a DataFrame: df.groupBy( $"a" ).agg( approxCountDistinct( $"e" ) ) |
1.3.0 |
avg |
avg(e: Column) avg(columnName: String) グループ内での平均値を計算します。 sql: select avg( e ) from table group by a DataFrame: df.groupBy( $"a" ).agg( avg( $"e" ) ) 例) グループ内アイテムが ( 1, 3, 3, 9 )の場合、4が返ります。 |
1.3.0 |
count |
count(e: Column) count(columnName: String) グループ内でのアイテム数をカウントします。 sql: select count( e ) from table group by a DataFrame: df.groupBy( $"a" ).agg( count( $"e" ) ) |
1.3.0 |
countDistinct |
countDistinct(expr: Column, exprs: Column*) countDistinct(columnName: String, columnNames: String*) グループ内でのアイテム数をカウントします。 countでは重複したアイテムもカウントアップしますが、重複しないアイテム数をカウントします。 ※DataFrameでは COUNT( DICTINCT 〜 ) 構文が使えないのでcountDistinctを使用します。 sql: select count( distinct e ) from table group by a DataFrame: df.groupBy( $"a" ).agg( countDistinct( $"e" ) ) 例) ( apple, apple banana, orange )のようなデータがあった場合に、 |
1.3.0 |
first |
first(e: Column) first(columnName: String) グループ内での最初の値を返します。 sql: select first( e ) from table group by DataFrame: df.groupBy( $"a" ).agg( first( $"e" ) ) |
1.3.0 |
last |
last(e: Column) last(columnName: String) グループ内での最後の値を返します。 sql: select last( e ) from table group by a DataFrame: df.groupBy( $"a" ).agg( last( $"e" ) ) |
1.3.0 |
max |
max(e: Column) max(columnName: String) グループ内での最大の値を返します。 sql: select max( e ) from table group by a DataFrame: df.groupBy( $"a" ).agg( max( $"e" ) ) 例) グループ内アイテムが ( 1, 3, 3, 9 )の場合、9が返ります。 |
1.3.0 |
mean |
mean(e: Column) mean(columnName: String) グループ内での平均値を計算します。 ※avgのエイリアスなのでavgと等価です。 sql: select mean( e ) from table group by a DataFrame: df.groupBy( $"a" ).agg( mean( $"e" ) ) |
1.4.0 |
min |
min(e: Column) min(columnName: String) グループ内での最小の値を返します。 sql: select min( e ) from table group by a DataFrame: df.groupBy( $"a" ).agg( min( $"e" ) ) 例) グループ内アイテムが ( 1, 3, 3, 9 )の場合、1が返ります。 |
1.3.0 |
stddev |
stddev(e: Column) グループのバイアスのない標準偏差を計算します。 sql: select stddev( e ) from table group by a DataFrame: df.groupBy( $"a" ).agg( stddev( $"e" ) ) |
1.6.0 |
stddev_pop |
stddev_pop(e: Column) グループの母集団標準偏差を計算します。 sql: select stddev_pop( e ) from table group by a DataFrame: df.groupBy( $"a" ).agg( stddev_pop( $"e" ) ) |
1.6.0 |
stddev_samp |
stddev_samp(e: Column) グループの累積標準偏差を計算します。 sql: select stddev_samp( e ) from table group by a DataFrame: df.groupBy( $"a" ).agg( stddev_samp( $"e" ) ) |
1.6.0 |
sum |
sum(e: Column) sum(columnName: String) グループ内の値を合計します。 sql: select sum( e ) from table group by a DataFrame: df.groupBy( $"a" ).agg( sum( $"e" ) ) 例) グループ内アイテムが ( 1, 3, 3, 9 )の場合、16が返ります。 |
1.3.0 |
sumDistinct |
sumDistinct(e: Column) sumDistinct(columnName: String) グループ内の重複を除いた値を合計します。 ※DataFrameでは SUM( DICTINCT 〜 ) 構文が使えないのでsumDistinctを使用します。 sql: select sum( distinct e ) from table group by a DataFrame: df.groupBy( $"a" ).agg( sumDistinct( $"e" ) ) 例) グループ内アイテムが ( 1, 3, 3, 9 )の場合、13が返ります。 |
1.3.0 |
構文
演算子
関数
宜しければこちらの動画もどうぞー
Apache Spark part6 Zeppelinで機械学習
https://www.youtube.com/watch?v=moZ9WeNsWgY
リクルートのポンパレデータを使って最小二乗法による回帰分析を行っています。