Size: a a a

2019 April 01

AA

Anton Alekseev in Moscow Spark
День добрый. Если колонка представляет из себя бинарный отклик, как отобрать строки из датафрейма из последовательности первых единиц до перехода в 0?
источник

PK

Pavel Klemenkov in Moscow Spark
Эм, filter(f.col(col) == 1)
источник

PK

Pavel Klemenkov in Moscow Spark
Не очень понял, в чем задача
источник

AA

Anton Alekseev in Moscow Spark
+-------------------+---+
|          mean_rank|imp|
+-------------------+---+
|0.05280725520803114|  1|
| 0.1294739218746978|  1|
|0.33280725520803117|  0|
| 0.6828072552080311|  0|
| 0.9783628107635867|  1|
|  1.048362810763587|  1|
|  1.332807255208031|  0|
| 1.3594739218746976|  0|
| 1.3594739218746976|  0|
- нужно отобрать первые две строки, так как после идёт переход в 0
источник

GP

Grigory Pomadchin in Moscow Spark
Anton Alekseev
+-------------------+---+
|          mean_rank|imp|
+-------------------+---+
|0.05280725520803114|  1|
| 0.1294739218746978|  1|
|0.33280725520803117|  0|
| 0.6828072552080311|  0|
| 0.9783628107635867|  1|
|  1.048362810763587|  1|
|  1.332807255208031|  0|
| 1.3594739218746976|  0|
| 1.3594739218746976|  0|
- нужно отобрать первые две строки, так как после идёт переход в 0
а индекс какой
источник

GP

Grigory Pomadchin in Moscow Spark
или тут все рандомное
источник

GP

Grigory Pomadchin in Moscow Spark
если рандомное то в чем смысл задачи?
источник

GP

Grigory Pomadchin in Moscow Spark
или ты сортишь по ранку
источник

AA

Anton Alekseev in Moscow Spark
Grigory Pomadchin
или тут все рандомное
Отсортировано по mean_rank
источник

K

KrivdaTheTriewe in Moscow Spark
Оконные функции sql
источник

K

KrivdaTheTriewe in Moscow Spark
Но вообще еслинцжно по всему датафрейму, то получается  нужно посмотреть максимальное значение мин ранка при нуле
источник

K

KrivdaTheTriewe in Moscow Spark
Или минимальное
источник

K

KrivdaTheTriewe in Moscow Spark
И отсортировать что равно 1 и меньше(больше) макс значения
источник

AS

Aleksandr Severinov in Moscow Spark
Anton Alekseev
День добрый. Если колонка представляет из себя бинарный отклик, как отобрать строки из датафрейма из последовательности первых единиц до перехода в 0?
Можно взять mean_rank для первой строки с imp=0, и фильтрануть, оставив значения меньшe, чем этот mean_rank
источник

AA

Anton Alekseev in Moscow Spark
Окей, всем спасибо, буду пробовать.
источник

AA

Anton Alekseev in Moscow Spark
А это окно разве не будет коллектить все на драйвере?
источник

D

Dima in Moscow Spark
А а с чего это окно коллектив на драйвер , в данном случае оно будет обработано в одной партиции
источник

AA

Anton Alekseev in Moscow Spark
Dima
А а с чего это окно коллектив на драйвер , в данном случае оно будет обработано в одной партиции
Значит я неправильно выразился, имел в виду это -
WARN org.apache.spark.sql.execution.Window: No Partition Defined for Window operation! Moving all data to a single partition, this can cause serious performance degradation.
источник

D

Dima in Moscow Spark
df.withColumn("minRankFor0",min(when(col("imp")===0,col("mean_rank")).over().filter(col("minRankFor0" > col("mean_rank"))
источник

D

Dima in Moscow Spark
Вернёт тебе первые две строки, если я правильно понял
источник