Предположим, у меня есть org.apache.spark.sql.DataFrame
с этой схемой:
root
|-- origin: string (nullable = true)
|-- destination: string (nullable = true)
Предположим, что типичный экземпляр этого DataFrame выглядит примерно так:
+------------------------------+--------------------------------------+
|origin |destination |
+------------------------------+--------------------------------------+
|JEBEL ALI |KUWAIT |
|CHITTAGONG |KEARNY POINT |
|FELIXSTOWE |KEARNY POINT |
|LOS ANGELES |EUROPOORT - E.C.T. DELTA TERMINAL |
|LOS ANGELES |KAOHSIUNG |
|GREATER NEW YORK TERMINAL |ANTWERP |
|SHANGHAI |LOS ANGELES |
|SAN PEDRO |BRANI TERMINAL - PULAU BRANI |
|KAMPONG SAOM |HOWLAND HOOK CONTAINER TERMINAL |
|SHANGHAI |LONG BEACH |
|BARCELONA |MONTREAL |
|HAIFA |GREATER NEW YORK TERMINAL |
|BRANI TERMINAL - PULAU BRANI |BUSAN |
|MUMBAI |KEARNY POINT |
|LAEM CHABANG |CAT LAI OIL TERMINAL - HO CHI MIN CITY|
|BARCELONA |JAWAHARLAL NEHRU PORT |
|HUANG DAO - OIL TERMINAL NO. 2|VANCOUVER, B.C. |
|HAIFA |HALIFAX |
|BRANI TERMINAL - PULAU BRANI |LOS ANGELES |
|MANILA |VANCOUVER, B.C. |
+------------------------------+--------------------------------------+
Я хочу преобразовать это вa DataFrame, подобный этому:
+------------------------------+---------------------------------------------------+
|origin |destinations |
+------------------------------+---------------------------------------------------+
|JEBEL ALI |[KUWAIT] |
|CHITTAGONG |[KEARNY POINT] |
|FELIXSTOWE |[KEARNY POINT] |
|LOS ANGELES |[EUROPOORT - E.C.T. DELTA TERMINAL, KAOHSIUNG] |
|GREATER NEW YORK TERMINAL |[ANTWERP] |
|SHANGHAI |[LOS ANGELES, [LONG BEACH] |
|SAN PEDRO |BRANI TERMINAL - PULAU BRANI |
|KAMPONG SAOM |HOWLAND HOOK CONTAINER TERMINAL |
|BARCELONA |[MONTREAL, JAWAHARLAL NEHRU PORT] |
|HAIFA |[GREATER NEW YORK TERMINAL, HALIFAX] |
|BRANI TERMINAL - PULAU BRANI |[BUSAN, LOS ANGELES] |
|MUMBAI |KEARNY POINT |
|LAEM CHABANG |CAT LAI OIL TERMINAL - HO CHI MIN CITY |
|HUANG DAO - OIL TERMINAL NO. 2|VANCOUVER, B.C. |
|MANILA |VANCOUVER, B.C. |
+------------------------------+---------------------------------------------------+
Обратите внимание, что каждое значение origin
уникально и показывает все пункты назначения, связанные с этим источником.Тип destinations
- это Seq [String].
Как мне это сделать?