【发布时间】:2022-01-20 06:23:33
【问题描述】:
我的数据如下所示
旅程表
| SERNR | TYPE |
|---|---|
| 123 | null |
| 456 | null |
| 789 | null |
分段表
| SERNR | Sgmnt | FROM-Station | TO-Station |
|---|---|---|---|
| 123 | 01 | A | B |
| 123 | 02 | B | C |
| 123 | 03 | C | B |
| 123 | 04 | B | A |
| 456 | 01 | A | B |
| 456 | 02 | B | C |
| 456 | 03 | C | D |
| 456 | 04 | D | A |
| 789 | 04 | A | B |
我想加入这两个数据框/表并检查旅程站FROM和TO以确定旅程类型,即如果它的回程某种类型A如果它的镜像返回某种类型@ 987654326@,如果是单程旅行,请输入C
类型计算如下
假设旅程 SERNR 123,旅程详情是 A->B , B->C, C->B,B->A ,这是一个镜像之旅,因为它的ABC-C然后是CB-A。
对于 789 它的 A->B 所以这是一个正常的旅程。
对于 456 其 A-> B, B->C , C->D , DA, 简称 ABC 然后 CDA,这是回归而非镜像
我真的不知道如何根据SERNR 对Dataframe 中的行进行比较,以通过检查同一SERNR 的FROM 和To 站来确定类型
如果我能得到一个指针来继续执行相同的操作,我真的很感激。
【问题讨论】:
标签: dataframe apache-spark apache-spark-sql