Я новичок в pyspark. У меня есть следующие два фрейма данных
df1 =
userId jobTitleName firstName lastName preferredFullName employeeCode CityName
137 Audiologist Tyson Addison Tyson Addison 516-46-5443 South Creek
338 Loan Officer Cameron Upton Cameron Upton 844-52-3684 Hot Springs
366 Restaurant Manager Peter Lambert Peter Lambert 665-33-0160 Beatty
520 Cashier Kaylee Hood Kaylee Hood 357-02-4038 Gig Harbor
234 Loan Officer Mike john Mike Johon 644-52-3684 South Creek
df2=
State Lookup Table
CityName StateID StateName
South Creek WA Washington
Hot Springs MO New Mexico
Beatty OR Nevada
Gig Harbor WA Washington
Okreek SD South Dakota
Elsmore KS Kansas
Wortham MS Texas
Здесь я пытаюсь посмотреть состояние в df2 на основе региона в df1 и создать новый Df следующим образом
Ожидается
df3 =
userId jobTitleName firstName lastName preferredFullName employeeCode CityName StateName
137 Audiologist Tyson Addison Tyson Addison 516-46-5443 South Creek Washington
338 Loan Officer Cameron Upton Cameron Upton 844-52-3684 Hot Springs New Mexico
366 Restaurant Manager Peter Lambert Peter Lambert 665-33-0160 Beatty Nevada
520 Cashier Kaylee Hood Kaylee Hood 357-02-4038 Gig Harbor Washington
234 Loan Officer Mike john Mike Johon 644-52-3684 South Creek Washington
Я попытался соединиться, чтобы получить вывод следующим образом:
joinDF=df1.join(df2, df1.region==df2.CityName, how='left')
Фактический вывод
userId jobTitleName firstName lastName preferredFullName employeeCode CityName StateName
137 Audiologist Tyson Addison Tyson Addison 516-46-5443 South Creek Washington
338 Loan Officer Cameron Upton Cameron Upton 844-52-3684 Hot Springs Montana
366 Restaurant Manager Peter Lambert Peter Lambert 665-33-0160 Beatty Oregon
520 Cashier Kaylee Hood Kaylee Hood 357-02-4038 Gig Harbor Washington
234 Loan Officer Mike john Mike Johon 644-52-3684 South Creek Washington
338 Loan Officer Cameron Upton Cameron Upton 844-52-3684 Hot Springs Montana
Как вы видели, city не сопоставляется с соответствующим именем штата из df2, а также строка 'Loan Officer' повторяется два раза, даже если она уже обновлена для идентификатора пользователя (338). Каков будет подход к решению проблемы такого рода?