Size: a a a

2018 November 20

AA

Anton Alekseev in Moscow Spark
Pavel Klemenkov
Тебе же по факту от этой шняги нужен бинарный признак, есть файл у пользователя или нет. Или ты по ним какую-то отдельную стату считаешь?
Нет, мне в конечном итоге надо сделать процессинг и из фрейма
..       server\file1  server\file2  server\file3
User1             1             2             3
User2             5             7             9
User3             1             7           100
источник

AA

Anton Alekseev in Moscow Spark
получить
..          vector
User1    [1, 2, 3]
User2    [5, 7, 9]
User3  [1, 7, 100]
источник

AA

Anton Alekseev in Moscow Spark
Это делается векторассемблером
источник

AA

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

AA

Anton Alekseev in Moscow Spark
и как вы уже написали надо их модифицировать чтобы можно было делать селект
источник

AA

Anton Alekseev in Moscow Spark
и как тут можно применить countvectorizer, я не понял)
источник

PK

Pavel Klemenkov in Moscow Spark
Ну да, у тебя получается какая-то другая стата по файликам считается, ну тогда сам бог велел VectorAssembler(df.schema.fieldNames, "features")
источник
2018 November 21

PK

Pavel Klemenkov in Moscow Spark
А как в структурном стриминге сделать такую штутку. У меня есть два output стрима, которые консьюмят один инпут стрим. Но в инпут стриме есть трансформация, которая генерирует уникальные айдишники для Row. В батчевой джобе это кэшированием решается, а как в структурном стриминге поступить, чтобы эти айдишники не менялись в двух output стримах?
источник
2018 November 22

AA

Anton Alekseev in Moscow Spark
Добрый день. Не могли бы вы скинуть что прочитать по тому как можно вытащить уникальные значения из всего датафрейма. Пока сделал так, наверняка можно оптимальнее
from itertools import chain
vals = df_new.select(*(collect_set(c).alias(c) for c in df_new.columns if c != 'User')).collect()[0].asDict().values()
unique_values = set(chain.from_iterable(vals))
источник

PK

Pavel Klemenkov in Moscow Spark
Привет, ты снова продолжаешь гнаступать на грабли со своей адской табличкой )) Может, все же, сделать три колонки: User, Path, Statistic. Тогда жизнь действительно сильно упростится ))
источник

PK

Pavel Klemenkov in Moscow Spark
Опять же непонятно, зачем тебе спарк, если ты все равно коллектишь все на драйвер )
источник

AA

Anton Alekseev in Moscow Spark
Pavel Klemenkov
Опять же непонятно, зачем тебе спарк, если ты все равно коллектишь все на драйвер )
Сколлектил я потому как через питон знал как уники вытащить и смерджить значения дикта. А вообще я понимаю что это не обязательно, все из-за незнания. Примеры на стаке сводятся к дистинкту от колонки, вот и не нагуглил))
источник

AA

Anton Alekseev in Moscow Spark
Pavel Klemenkov
Привет, ты снова продолжаешь гнаступать на грабли со своей адской табличкой )) Может, все же, сделать три колонки: User, Path, Statistic. Тогда жизнь действительно сильно упростится ))
Просто как то обидно что приходит уже почти готовый формат который немного подлатать и в модели, думал обойтись малой кровью, но уже задумываюсь, чтобы опять разворачивать процессить и сворачивать.
источник

SK

Sergey Karpiy in Moscow Spark
А че с дистинктом не так?
источник

SK

Sergey Karpiy in Moscow Spark
Типа df.select('*').distinct()
источник

AA

Anton Alekseev in Moscow Spark
Sergey Karpiy
А че с дистинктом не так?
все с ним хорошо, но мы получим датафрейм с уникальными строками, я бы хотел получить набор уникальных значений со всего фрейма.
источник

SK

Sergey Karpiy in Moscow Spark
Типа union по всем колонкам и потом дистинкт?
источник

AA

Anton Alekseev in Moscow Spark
Sergey Karpiy
Типа union по всем колонкам и потом дистинкт?
Это не тот union что в доке спарка? Если вы имеете в виду конкатенацию колонок в одну и взятие distinct от неё, то да.
источник

SK

Sergey Karpiy in Moscow Spark
Anton Alekseev
Это не тот union что в доке спарка? Если вы имеете в виду конкатенацию колонок в одну и взятие distinct от неё, то да.
Ну да, мы же вроде про спарк сейчас
источник

AA

Anton Alekseev in Moscow Spark
Sergey Karpiy
Ну да, мы же вроде про спарк сейчас
Ммм, найс так явно проще
from functools import reduce
from pyspark.sql import DataFrame
def unionAll(*dfs):
   return reduce(DataFrame.unionAll, dfs)
unionAll(*[df_new.select(c) for c in df_new.columns[1:]]).distinct()
источник