Я использую spark, кодирование на python
У меня есть RDD с искровым содержимым, состоящий из объектов json, которые являются словарями.Я хотел бы выбрать и сгруппировать определенные пары ключ / значение из каждой записи (объект json) в СДР, сгруппировать их и затем собрать их.
Например: каждая запись в СДР содержит множество (ключ:пары значений), среди которых
the first entry contains: 'str_id' : 000000 ,'text' : "text here"
the second entry contains: 'str_id' : 000001 ,'text' : "new text"
...
Я хотел бы собрать значения 'str_id' и 'text' из каждой записи вместе в СДР, чтобы создать новыйСДР, содержащий следующие записи:
[(000000, «текст здесь»), (000001, «новый текст»), ...]
К сожалению, я не могу понять, как отобразить этипары ключ: значение, поскольку пары словарь ключ: значение находятся внутри каждой записи СДР.
Буду признателен за любую помощь в этом
Редактировать: Решено
Я хотел работать в системе RDD, потому что я работаю с большим количеством данных, поэтомуЯ не использовал .collect ().
rdd = sc.textFile(./json-data.txt)
rdd_entry = rdd.map(lambda x: jform(x) \
.map(lambda y: val_get(y,"text","user"))
Где val_get () - это функция, которая возвращает словарные записи, объединенные в кортеж, а jform () преобразует строки в объекты json.
Я понял, что причина, по которой я получаю ошибки, заключается в том, что я не отфильтровываю RDD для свободных объектов, отличных от json, которые прошли первое сопоставление.У меня была оригинальная мысль, что отображение из словарной записи в RDD не будет работать, но я ошибся.
Спасибо