#python-3.x #list #dataframe #apache-spark-sql
#python-3.x #Список #dataframe #apache-spark-sql
Вопрос:
Это мой список ввода:
input_data = ['ned','etainclub','codingart','codingman','ksc','imrahelk', 'newbijohn','coinfarmer165','ponzipanda','blockchainstudio','jisoooh0202', 'jamieinthedark','xinnong','bbooaae','onehand','osyvv','bluengel','jungjunghoon','duplicate','lucky2']
Я определил функцию predict
, и после вызова этой функции для данных я получаю этот результат:
[{'ned': 'male'}, {'etainclub': 'male'}, {'codingart': 'male'}, {'codingman': 'male'}, {'ksc': 'male'}, {'imrahelk': 'male'}, {'newbijohn': 'male'}, {'coinfarmer165': 'male'}, {'ponzipanda': 'female'}, {'blockchainstudio': 'male'}, {'jisoooh0202': 'male'}, {'jamieinthedark': 'male'}, {'xinnong': 'male'}, {'bbooaae': 'female'}, {'onehand': 'male'}, {'osyvv': 'male'}, {'bluengel': 'male'}, {'jungjunghoon': 'male'}, {'duplicate': 'female'}, {'lucky2': 'male'}]
Приведенная ниже таблица является целевым форматом, который я хочу получить из приведенных выше данных:
Имя | пол |
---|---|
нед | самец |
etainclub | самец |
дублировать | Женский |
lucky2 | самец |
Комментарии:
1. Привет, Джуной, добро пожаловать в StackOverflow! Не могли бы вы переформатировать код в вопросе, используя средство форматирования кода в текстовом редакторе?
2. @ebeb9, я обновил. Это нормально?
Ответ №1:
Это predict_output
список dicts. Сначала вы можете преобразовать его в список списков, получив элементы каждого элемента dict, а затем передать результат в spark.createDataFrame()
:
import itertools
data = itertools.chain(*[p.items() for p in predict_output])
df = spark.createDataFrame(data, ["name", "gender"])
df.show(5)
# --------- ------
#| name|gender|
# --------- ------
#| ned| male|
#|etainclub| male|
#|codingart| male|
#|codingman| male|
#| ksc| male|
# --------- ------
Ответ №2:
Альтернативное решение без использования itertools:
df = spark.createDataFrame(
[[k,v] for i in predict_output for k,v in i.items()],
['name', 'gender']
)