Как вставить словарь в ячейку pyspark df - PullRequest
0 голосов
/ 05 мая 2020

у меня есть DF с 2 столбцами, один из которых показывает пол, другой показывает случаи, связанные с медицинской специальностью, хотя я не могу вставить словарь в столбец вхождений

код

m=[gender0["medical_specialty"] for gender0 in gender0.rdd.collect()]
dictmale={a:m.count(a) for a in m}
print((dictmale))

вывод:

{' Bariatrics': 13, ' Cardiovascular / Pulmonary': 347, ' Neurology': 198, ' Dentistry': 24, ' Urology': 153, ' General Medicine': 216, ' Surgery': 1050, ' Speech - Language': 9, ' SOAP / Chart / Progress Notes': 132, ' Sleep Medicine': 15, ' Rheumatology': 7, ' Radiology': 247, ' Psychiatry / Psychology': 45, ' Podiatry': 35, ' Physical Medicine - Rehab': 18, ' Pediatrics - Neonatal': 57, ' Pain Management': 56, ' Orthopedic': 324, ' Ophthalmology': 79, ' Office Notes': 43, ' Obstetrics / Gynecology': 134, ' Neurosurgery': 90, ' Nephrology': 78, ' Letters': 21, ' Lab Medicine - Pathology': 7, ' IME-QME-Work Comp etc.': 15, ' Hospice - Palliative Care': 6, ' Hematology - Oncology': 80, ' Gastroenterology': 208, ' ENT - Otolaryngology': 93, ' Endocrinology': 16, ' Emergency Room Reports': 65, ' Discharge Summary': 98, ' Diets and Nutritions': 6, ' Dermatology': 22, ' Cosmetic / Plastic Surgery': 26, ' Consult - History and Phy.': 429, ' Chiropractic': 12, ' Autopsy': 8, ' Allergy / Immunology': 4}

код для его выполнения:

c= spark.createDataFrame(
  [
  ('Male',dictmale),
  ("Female",f),

  ],
  ['Gender',"medical_specialty"]
)
display(c)

чего я хочу достичь

Male    [ {' Bariatrics': 13, ' Cardiovascular / Pulmonary': 347, ' Neurology': 198, ' Dentistry': 24, ' Urology': 153, ' General Medicine': 216, ' Surgery': 1050, ' Speech - Language': 9, ' SOAP / Chart / Progress Notes': 132, ' Sleep Medicine': 15, ' Rheumatology': 7, ' Radiology': 247, ' Psychiatry / Psychology': 45, ' Podiatry': 35, ' Physical Medicine - Rehab': 18, ' Pediatrics - Neonatal': 57, ' Pain Management': 56, ' Orthopedic': 324,

но я закончил с этой ошибкой:

TypeError: field medical_specialty: Can not merge type <class 'pyspark.sql.types.MapType'> and <class 'pyspark.sql.types.ArrayType'>

с обычным списком это происходит, но не со словарем

Male    [" Bariatrics"," Bariatrics"," Cardiovascular / Pulmonary"," Bariatrics"," Cardiovascular / Pulmonary"," Bariatrics"," Bariatrics"," Cardiovascular / Pulmonary"," Neurology"," Bariatrics"," Dentistry"," Bariatrics"," Cardiovascular / Pulmonary",
...