Учитывая кадр данных pyspark, содержащий описания иерархии, как я могу извлечь полную структуру иерархии для данного идеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Учитывая кадр данных pyspark, содержащий описания иерархии, как я могу извлечь полную структуру иерархии для данного иде

Сообщение Anonymous »


У меня есть такая таблица:

columns = ["Structure_ID", "Position", "Hierarchy", "Key", "Key_Text"] data = [(1, 101, 1, 10000, "Европа"), (1, 102, 2, 11 000, "Франция"), (1, 103, 3, 11 100, "Париж"), (1, 104, 1, 20000, «Азия»), (1, 105, 2, 21000, «Япония»)] df_original = spark.createDataFrame(данные).toDF(*столбцы) df_original.show() #+------------+--------+---------+-----+--------+ #|Идентификатор_структуры|Позиция|Иерархия| Ключ|Текст_ключа| #+------------+--------+---------+-----+--------+ #| 1| 101| 1|10000| Европа| #| 1| 102| 2|11000| Франция| #| 1| 103| 3|11100| Париж| #| 1| 104| 1|20000| Азия| #| 1| 105| 2|21000| Япония| #+------------+--------+---------+-----+--------+ Я хочу иметь возможность получить для данного идентификатора структуры и позиции, например. Structure_ID = 1 и Position = 105, ключевой текст из этой позиции, а также из любых верхних уровней, т. е. в этом примере из Азии и Японии.

Я преобразовал исходную таблицу очень громоздким способом (множество объединений и временное создание нового столбца для каждого уровня иерархии) в такой вид:

#+------------+--------+---------+---------- ------------+ #|Идентификатор_структуры|Позиция|Иерархия| Ключ_массив| #+------------+--------+---------+---------------- ------+ #| 1| 101| 1| [Европа]| #| 1| 102| 2| [Европа, Франция]| #| 1| 103| 3|[Европа, Франция, Париж| #| 1| 104| 1| [Азия]| #| 1| 105| 2| [Азия, Япония]| #+------------+--------+---------+---------------- ------+ Если выходной формат имеет смысл, мне интересно, как эффективно преобразовать исходную таблицу в этот. В противном случае я хотел бы знать, что имело бы смысл, возможно, есть ли в Python/pyspark древовидная структура?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»