Я выполняю анализ с помощью фрейма данных pyspark.
Там один столбец назывался: json_data. Это выглядит так:
Затем я попытался преобразовать его в формат типа словаря, используя следующий код:
from pyspark.sql.functions import udf
func = udf(lambda x: eval(x))
df_beer = df_beer.withColumn('json_data_new', func(df_beer.json_data))
После конвертации новый столбец 'json_data_new' выглядит так
Затем я проверил тип данных старого и нового столбцов, оба они по-прежнему строкового типа. 
Вопрос: как извлечь числа, связанные с ключом "2_QTDE", и сохранить их как новый столбец?
Я знал, что это json-подобная строка, и мне было трудно иметь дело с этим форматом.
Я попробовал способ python, используя ключ словаря, но он не работает.
Итак, я подумал, может быть, мне нужно написать функцию для извлечения чисел из json_data_new:
df_beer = df_beef.WithColumn('newColumn', func_extract(df_beer.json_data_new))
Как правильно определить функцию func_extract? Спасибо!


StructTypeс помощьюpyspark.sql.functions.from_json. После этого вы можете получить доступ к элементам из структуры, используяpyspark.sql.Columns.getItem(key)- person pault   schedule 18.04.2018