SparkSQLリファレンス第三部、関数編・数学関数です。
数学関数
sin, cos, tanなど式の数学演算をおこなう関数です。
関数 | 内容 | ver. |
---|---|---|
acos |
acos(e: Column|String) アークコサイン(逆余弦)を計算します。 sql: select acos( e ) from ... DataFrame: df.select( acos( $"e" ) ) |
1.4.0 |
asin |
asin(e: Column|String) アークサイン(逆正弦)を計算します。 sql: select asin( e ) from ... DataFrame: df.select( asin( $"e" ) ) |
1.4.0 |
atan |
atan(e: Column|String) アークタンジェント(逆正接)を計算します。 sql: select atan( e ) from ... DataFrame: df.select( atan( $"e" ) ) |
1.4.0 |
atan2(l: Column|String|Double, r: Column|String|Double) |
atan2(l: Column, r: Column) l/rのアークタンジェント(逆正接)を計算します。 sql: select atan2( x, y ) from ... DataFrame: df.select( atan2( $"x", $"y" ) ) |
1.4.0 |
bin |
bin(e: Column|String) 長整数型データをバイナリ表現に変換します。 ※文字列型で返却します。 sql: select bin( 12 ) from ... DataFrame: df.select( bin( 12 ) ) 例) 上記の例では “1100” が返ります。 |
1.5.0 |
cbrt |
cbrt(e: Column|String) 立方根を計算します。 sql: select cbrt( e ) from ... DataFrame: df.select( cbrt( $"e" ) ) |
1.4.0 |
ceil |
ceil(e: Column|String) 数値(floatやdouble, decimal)の少数切り上げを行います。 sql: select ceil( 0.98 ) from ... DataFrame: df.select( ceil( 0.98 ) ) 例) 上記の例では 1 が返ります。 |
1.4.0 |
conv |
conv(num: Column, fromBase: Int, toBase: Int) 数値をfrom基数からto基数へ変換します。 sql: select conv( 15, 10, 2 ) from ... DataFrame: df.select( conv( 15, 10, 2 ) ) 例) 上記の例では10進数から2進数への変換を行っています。 |
1.5.0 |
cos |
cos(e: Column|String) コサイン(余弦)を計算します。 sql: select cos( e ) from ... DataFrame: df.select( cos( $"e" ) ) |
1.4.0 |
cosh |
cosh(e: Column|String) ハイパボリックコサイン(双曲線余弦)を計算します。 sql: select cosh( e ) from ... DataFrame: df.select( cosh( $"e" ) ) |
1.4.0 |
exp |
exp(n: Column|String) e(オイラー数)をn乗します。 sql: select exp( n ) from ... DataFrame: df.select( exp( $"n" ) ) |
1.4.0 |
expm1 |
expm1(n: Column|String) e(オイラー数)をn乗した後、1をマイナスします。 sql: select expm1( e ) from ... DataFrame: df.select( expm1( $"e" ) ) |
1.4.0 |
factorial |
factorial(e: Column|String) 数値の階乗計算をおこないます。 sql: select factorial( e ) from ... DataFrame: df.select( factorial( $"e" ) ) |
1.5.0 |
floor |
floor(e: Column|String) 数値(floatやdouble, decimal)以下で最大の整数を返します。 sql: select floor( 1.23 ) from ... DataFrame: df.select( floor( 1.23 ) ) 例) 上記の例では 1 が返ります。 |
1.4.0 |
greatest |
greatest(exprs: Column*|String*) 与えられたパラメータの中で最大の値を返します。 sql: select greatest( 1, 10, 3 ) from ... DataFrame: df.select( greatest( 1, 10, 3 ) ) 例) 上記の例では 10 が返ります。 |
1.5.0 |
hex |
hex(column: Column) 数値を16進数に変換します。 sql: select hex( 10 ) from ... DataFrame: df.select( hex( lit( 10 ) ) ) 例) 上記の例では “A” が返ります。 |
1.5.0 |
unhex |
unhex(column: Column) hexの逆演算を行います。引数内の16進数のそれぞれのペアを数字として文字に変換します。 sql: select unhex( '4D7953514C' ) from ... DataFrame: df.select( unhex( '4D7953514C' ) ) |
1.5.0 |
hypot |
(l: Column|String|Double, r: Column|String|Double) x の2乗と y の2乗の和の平方根を計算します。 つまり三平方の定理で斜辺を求めるやつです。 sql: select hypot( l, r ) from ... DataFrame: df.select( hypot( $"l", $"r" ) ) |
1.4.0 |
least |
least(exprs: Column*|String*) 与えられたパラメータの中で最小の値を返します。 sql: select least( 1, 10, 3 ) from ... DataFrame: df.select( least( 1, 10, 3 ) ) 例) 上記の例では 1 が返ります。 |
1.5.0 |
log |
log(e: Column|String) 自然対数を計算します。 sql: select log( e ) from ... DataFrame: df.select( log( $"e" ) ) |
1.4.0 |
log10 |
log10(e: Column|String) 常用対数を計算します。 sql: select log10( e ) from ... DataFrame: df.select( log10( $"e" ) ) |
1.4.0 |
log1p |
log1p(e: Column|String) 引数に1を足した値の自然対数を計算します。 sql: select log1p( e ) from ... DataFrame: df.select( log1p( $"e" ) ) |
1.4.0 |
log2 |
log2(expr: Column|String) 2の対数を計算します。 sql: select log2( e ) from ... DataFrame: df.select( log2( $"e" ) ) |
1.5.0 |
pow |
pow(l: Column|String, r: Column|String) 第1引数の第2引数乗を計算します。 sql: select pow( l, r ) from ... DataFrame: df.select( pow( $"l", $"r" ) ) 例) l = 2, r = 4の場合、16 が返ります。 |
1.4.0 |
pmod |
pmod(dividend: Column, divisor: Column) dividend を divisor で割った商を正の値で返します。 sql: select pmod( dividend, divisor ) from ... DataFrame: df.select( ( $"dividend", $"divisor" ) ) 例) dividend = -7, divisor = 3の場合、-2 が返ります。 |
1.5.0 |
rint |
rint(e: Column|String) 少数を近似した整数をDoubleで返します。 sql: select rint( e ) from ... DataFrame: df.select( rint( $"e" ) ) |
1.4.0 |
round |
round(e: Column|String) round(e: Column, scale: Int) 少数部を切り捨てた値を返します。 sql: select round( e ) from ... DataFrame: df.select( round( $"e" ) ) 例) e = 1.22 の場合、1が返ります。 |
1.5.0 |
shiftLeft |
shiftLeft(e: Column, numBits: Int) numBitsだけ左シフトします。 Long型の場合のみLongを、その他はInteger型で返します。 sql: select shiftLeft( e, numBits ) from ... DataFrame: df.select( shiftLeft( $"e", $"numBits" ) ) 例) e = 21, numBits = 1の場合、42 が返ります。 |
1.5.0 |
shiftRight |
shiftRight(e: Column, numBits: Int) numBitsだけ右シフトします。 Long型の場合のみLongを、その他はInteger型で返します。 sql: select shiftRight( e, numBits ) from ... DataFrame: df.select( shiftRight( $"e", $"numBits" ) ) 例) e = 42, numBits = 1の場合、21 が返ります。 |
1.5.0 |
shiftRightUnsigned |
shiftRightUnsigned(e: Column, numBits: Int) 符号なしでnumBitsだけ右シフトします。 ※右シフトの場合、正値から負値への反転が起こりうるため。 Long型の場合のみLongを、その他はInteger型で返します。 sql: select shiftRightUnsigned( e, numBits ) from ... DataFrame: df.select( shiftRightUnsigned( $"e", $"numBits" ) ) 例) e = -42, numBits = 1の場合、9223372036854775787L が返ります。 |
1.5.0 |
signum |
signum(e: Column|String) 符号の判定を行います。 正の数:1, 負の数:-1, ゼロ:0が返ります。 sql: select signum( e ) from ... DataFrame: df.select( signum( $"e" ) ) 例) e = -11の場合、-1 が返ります。 |
1.4.0 |
sin |
sin(e: Column|String) サイン(正弦)を計算します。 sql: select sin( e ) from ... DataFrame: df.select( sin( $"e" ) ) |
1.4.0 |
sinh |
sinh(e: Column|String) ハイパボリックサイン(双曲線正弦)を計算します。 sql: select sinh( e ) from ... DataFrame: df.select( sinh( $"e" ) ) |
1.4.0 |
tan |
tan(e: Column|String) タンジェント(正接)を計算します。 sql: select tan( e ) from ... DataFrame: df.select( tn( $"e" ) ) |
1.4.0 |
tanh |
tanh(e: Column|String) ハイパボリックタンジェント(双曲線正接)を計算します。 sql: select tanh( e ) from ... DataFrame: df.select( tanh( $"e" ) ) |
1.4.0 |
toDegrees |
toDegrees(e: Column|String) ラジアンから角度に変換します。 sql: select toDegrees( e ) from ... DataFrame: df.select( toDegrees( $"e" ) ) |
1.4.0 |
toRadians |
toRadians(e: Column|String) 角度からラジアンに変換します。 sql: select toRadians( e ) from ... DataFrame: df.select( toRadians( $"e" ) ) |
1.4.0 |
構文
演算子
関数
Sparkで読み込んだCSVファイルをMySQLにつっこんでます。
https://www.youtube.com/watch?v=EHbsoPcZ5Wk
iPythonからpysparkを使って↑と同じことやってます。
https://www.youtube.com/watch?v=D-aotRlBrvw