バツイチとインケンのエンジニアブログ
プログラムやプログラムじゃないこと

Apache Spark: SparkSQLリファレンス〜関数編・数学関数〜

2015-10-29
書いた人 : バツイチ
カテゴリ : Spark | タグ : Apache Spark, SQL, リファレンス

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進数への変換を行っています。
上記は “1111” が返ります。

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

構文

  • SELECT .. FROM …
  • WHERE
  • JOIN
  • ORDER BY
  • LIMIT
  • GROUP BY
  • HAVING
  • CUBE
  • ROLLUP

演算子

  • 比較演算子
  • bit演算子
  • 算術演算子
  • 集合演算子
  • 論理演算子

関数

  • 文字列関数
  • 変換関数
  • 数学関数
  • 日付・時刻関数
  • 集計関数
  • Window関数
  • その他の関数

Sparkで読み込んだCSVファイルをMySQLにつっこんでます。

スクリーンショット 2015-09-13 21.26.22

https://www.youtube.com/watch?v=EHbsoPcZ5Wk

iPythonからpysparkを使って↑と同じことやってます。

スクリーンショット 2015-10-13 12.46.16

https://www.youtube.com/watch?v=D-aotRlBrvw

このエントリーをはてなブックマークに追加
Tweet

← Apache Spark part5 Zeppelinを使ってデータ分析の初歩
Apache Spark part6 Zeppelinで機械学習 →

 

最近書いた記事

  • Ryzen7 3800XT でmini ITXオープンフレームPCを作る
  • Pythonで機械学習入門 競馬予測
  • HP ENVY 15 クリエイターモデルレビューとRAID0解除
  • JRA-VAN データラボを使って、競馬データを収集する
  • Surface Pro 3 にubuntu18.04を入れる

カテゴリー

  • Android
  • Apache Flink
  • API
  • AWS
  • bazel
  • BigQuery
  • Cassandra
  • Docker
  • Druid
  • Elasticsearch
  • Git
  • Golang
  • gradle
  • HDFS
  • JavaScript
  • jvm
  • Linux
  • MongoDB
  • MySQL
  • Nginx
  • Nodejs
  • PaaS
  • PHP
  • Python
  • RabbitMQ
  • Raspberry Pi
  • React Native
  • Redis
  • Riak
  • rust
  • scala
  • Scheme
  • SEO
  • solr
  • Spark
  • spray
  • Sublime Text
  • Swift
  • Tableau
  • Unity
  • WebIDE
  • Wordpress
  • Youtube
  • ひとこと
  • カンファレンス
  • スケジューラ
  • マイクロマウス
  • 広告
  • 技術じゃないやつ
  • 株
  • 機械学習
  • 競馬
  • 自作キーボード
  • 自然言語処理

アーカイブ

  • 2021年4月
  • 2021年2月
  • 2021年1月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年9月
  • 2018年5月
  • 2018年3月
  • 2018年2月
  • 2017年9月
  • 2017年8月
  • 2017年6月
  • 2017年4月
  • 2017年3月
  • 2017年1月
  • 2016年10月
  • 2016年9月
  • 2016年8月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年8月
  • 2015年6月
  • 2015年5月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年9月
  • 2014年6月
  • 2014年5月
  • 2014年3月
  • 2014年2月
  • 2014年1月
  • 2013年12月
  • 2013年11月
  • 2013年10月
  • 2013年9月
  • 2013年8月

書いた人

  • バツイチちゃん
  • インケンくん

このブログについて

エンジニアとしての考え方が間逆な2人がしょーもないこと書いてます。

バツイチ

アイコン

IT業界で働くエンジニアです。名前の通りバツイチです。
理論や抽象的概念が好きだけど人に説明するのが下手。

インケン

アイコン

バツイチちゃんと同じ業界で働いています。
理論とか開発手法とかは正直どうでもよくて、
生活する上で役に立つことに使いたい

Copyright 2025 バツイチとインケンのエンジニアブログ