Skip to content

Commit fd7621a

Browse files
cpcloudkszucs
authored andcommitted
feat(pyspark): implement trig functions
1 parent 640234b commit fd7621a

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

ibis/backends/pyspark/compiler.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1930,3 +1930,31 @@ def compile_null_if_zero(t, expr, scope, timecontext, **kwargs):
19301930
op = expr.op()
19311931
arg = t.translate(op.arg, scope, timecontext, **kwargs)
19321932
return F.when(arg == 0, F.lit(None)).otherwise(arg)
1933+
1934+
1935+
@compiles(ops.Acos)
1936+
@compiles(ops.Asin)
1937+
@compiles(ops.Atan)
1938+
@compiles(ops.Cos)
1939+
@compiles(ops.Sin)
1940+
@compiles(ops.Tan)
1941+
def compile_trig(t, expr, scope, timecontext, **kwargs):
1942+
op = expr.op()
1943+
arg = t.translate(op.arg, scope, timecontext, **kwargs)
1944+
func_name = op.__class__.__name__.lower()
1945+
func = getattr(F, func_name)
1946+
return func(arg)
1947+
1948+
1949+
@compiles(ops.Cot)
1950+
def compile_cot(t, expr, scope, timecontext, **kwargs):
1951+
op = expr.op()
1952+
arg = t.translate(op.arg, scope, timecontext, **kwargs)
1953+
return F.cos(arg) / F.sin(arg)
1954+
1955+
1956+
@compiles(ops.Atan2)
1957+
def compile_atan2(t, expr, scope, timecontext, **kwargs):
1958+
op = expr.op()
1959+
y, x = (t.translate(arg, scope, timecontext, **kwargs) for arg in op.args)
1960+
return F.atan2(y, x)

0 commit comments

Comments
 (0)