atan2(y, x)
Описание
Функция atan2()
вычисляет арктангенс отношения y/x в радианах, учитывая знаки обоих аргументов для определения квадранта результата.
Параметры
y
: Column - координата y (противолежащий катет)x
: Column - координата x (прилежащий катет)
Возвращаемое значение
Column - угол в радианах в диапазоне [-π, π]
Пример использования
from pyspark.sql.functions import atan2, degrees, lit
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("atan2_example").getOrCreate()
# Создаем DataFrame с координатами
data = [
(1.0, 1.0), # 45 градусов
(1.0, -1.0), # 135 градусов
(-1.0, -1.0), # -135 градусов
(-1.0, 1.0), # -45 градусов
(0.0, 1.0), # 90 градусов
(1.0, 0.0) # 0 градусов
]
df = spark.createDataFrame(data, ["y", "x"])
# Вычисляем угол в радианах и градусах
df = df.withColumn("angle_rad", atan2("y", "x")) \
.withColumn("angle_deg", degrees(atan2("y", "x")))
df.show(truncate=False)
# Результат:
# +---+---+-------------------+-------------------+
# |y |x |angle_rad |angle_deg |
# +---+---+-------------------+-------------------+
# |1.0|1.0|0.7853981633974483|45.0 |
# |1.0|-1.0|2.356194490192345 |135.0 |
# |-1.0|-1.0|-2.356194490192345|-135.0 |
# |-1.0|1.0|-0.7853981633974483|-45.0 |
# |0.0|1.0|1.5707963267948966|90.0 |
# |1.0|0.0|0.0 |0.0 |
# +---+---+-------------------+-------------------+
Примечания
- Возвращает NULL, если любой из аргументов NULL
- Результат находится в диапазоне [-π, π]
- Учитывает знаки обоих аргументов для определения квадранта
- Полезно для:
- Преобразования декартовых координат в полярные
- Вычисления углов в геометрических задачах
- Определения направления вектора
- Для преобразования радианов в градусы используйте
degrees()
- Для вычисления обычного арктангенса используйте
atan()