Size: a a a

2020 February 03

SO

Simon Osipov in Moscow Spark
Привет, вопрос: Spark 2.3
.withColumn("row_number", func.row_number().over(Window.partitionBy(["foo", "bar"]).orderBy(["foo1", "bar2"], ascending=[False, False])))

Говорит, что ascending нет у оконной функции, что только у DF есть.
Есть https://issues.apache.org/jira/browse/SPARK-18818, который вроде как хотели сделать, но что-то встряли.

Какой обходной путь есть, если мне надо row_number() заиметь в оконной функции?
источник

АП

Алексей Пахомов... in Moscow Spark
отрицни?
источник

SO

Simon Osipov in Moscow Spark
Простите, не понял это слово
источник

DZ

Dmitry Zuev in Moscow Spark
Sql напиши
источник

DZ

Dmitry Zuev in Moscow Spark
Ради чего этот дроч
источник

АП

Алексей Пахомов... in Moscow Spark
ну сортировка считается , но в обратном направлении, ты можешь получить необходимую обработав получившийся порядок
источник

SO

Simon Osipov in Moscow Spark
Алексей Пахомов
ну сортировка считается , но в обратном направлении, ты можешь получить необходимую обработав получившийся порядок
мне нужен был row_number = 1, можно пойти от max(row_number) получается
источник

АП

Алексей Пахомов... in Moscow Spark
это костыль конечно но искомую задачу решит
источник

SO

Simon Osipov in Moscow Spark
Алексей Пахомов
это костыль конечно но искомую задачу решит
А не костыль это писать SQL?
источник

AK

Alena Korogodova in Moscow Spark
Что плохого в SQL?
источник

SO

Simon Osipov in Moscow Spark
Ничего плохого в этом нет, мне просто интересно решение без SQL
источник

DZ

Dmitry Zuev in Moscow Spark
Simon Osipov
Ничего плохого в этом нет, мне просто интересно решение без SQL
Будет такое же как на sql
источник

ТС

Тимофей Смирнов... in Moscow Spark
Там вроде есть функция SF.desc
источник

AK

Alena Korogodova in Moscow Spark
Я искренне не понимаю этой нелюбви к sql. Удобно же! А не эти портянки, что аж глаза сломать можно.
источник

АП

Алексей Пахомов... in Moscow Spark
test.withColumn("row_number", F.row_number().over(Window.partitionBy(["foo", "bar"]).orderBy(F.col("x").desc()))).show()
источник

С

Сюткин in Moscow Spark
Alena Korogodova
Я искренне не понимаю этой нелюбви к sql. Удобно же! А не эти портянки, что аж глаза сломать можно.
Мыж погромисты, давайте не эскьюэльничать, оставьте это аналитикам
источник

DZ

Dmitry Zuev in Moscow Spark
Алексей Пахомов
test.withColumn("row_number", F.row_number().over(Window.partitionBy(["foo", "bar"]).orderBy(F.col("x").desc()))).show()
Синтаксис sql, только уродливый. Так скорее всего это питон, никаких типов, никакой компиляции
источник

SO

Simon Osipov in Moscow Spark
Алексей Пахомов
test.withColumn("row_number", F.row_number().over(Window.partitionBy(["foo", "bar"]).orderBy(F.col("x").desc()))).show()
Да, вот только если сортировка по 2 колонкам нужна, desc() к списку же не применишь
источник

ТС

Тимофей Смирнов... in Moscow Spark
По моему питон красивее)
источник

AK

Alena Korogodova in Moscow Spark
Сюткин
Мыж погромисты, давайте не эскьюэльничать, оставьте это аналитикам
Аналитики всё в пандас запихивают и радуются)
источник