Извлечение данных из фрейма данных pyspark с использованием условий из других фреймов данных - PullRequest
0 голосов
/ 14 октября 2019

У меня есть фрейм данных pysprak и необходимость извлекать из него выбранные строки на основе состояния двух других фреймов данных с одним столбцом. Я попытался использовать соединение, но это слишком медленно, так как данные огромны. Я думал об использовании разбиения или lookup () в spark, но я не смог реализовать их, так как я новичок в pyspark. Пожалуйста, предложите мне, как сделать это эффективно. Вот примерные кадры данных:

main dataframe:

  df1 = DataFrame({'CID': ['A0', 'A1', 'A2', 'A3'],'Name': ['B7', 'B4', 'B0', 'B3'],'Group':[23,34,45,67]})

conditional dataframes:

  df2 = DataFrame({'CID': ['A4', 'A3', 'A7', 'A8']})

  df3=Dataframe({'Group':[33,42,66,90]})

Я пытался выполнить объединение, но оно неэффективно.

df1=df1.join(df2,df1.CID==df2.CID)


df1=df1.join(df3,df1.Group==df3.Group)

Заранее спасибо!

1 Ответ

0 голосов
/ 21 октября 2019

Единственный способ, о котором я могу думать, это присоединение к фреймам данных. Вот несколько советов, как сделать объединения эффективными -

  1. Трансляция df2 и df3, если их размер невелик.
  2. Сортировка Dataframes на основе ключа соединения и перераспределения перед объединением.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...