spark 处理表中的数据,每行与剩下的所有行比较,有没有好的好的解决方案

俩只猴 2019-03-23 06:09:22
eg:
id start_time end_time
1 2018-08-29 02:02 2018-08-29 02:10
2 2018-08-29 02:10 2018-08-29 02:21
3 2018-08-29 02:21 2018-08-29 02:25
4 2018-08-29 02:25 2018-08-29 04:57
5 2018-08-29 04:57 2018-08-29 05:49
6 2018-08-29 05:49 2018-08-29 06:17
7 2018-08-29 06:18 2018-08-29 06:27
8 2018-08-29 06:27 2018-08-29 06:35
9 2018-08-29 06:35 2018-08-29 06:54


第一次是1与剩下的2~12依次比较 如果1的end_time 与 2的start_time 相差小于20分钟就合并.
第一次比较结果为:
1 2018-08-29 02:02 2018-08-29 02:21
然后用合并得到的结果与 3~12继续比较做同样的操作,
一直到不能合并,将结果保留到result,然后以剩下集合中的第一条做同样的操作,一直到不能合并将这个结果也放入result,一直这样做同样的操作,最后返回result
大家有没有什么好的方案?
...全文
268 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
张伯毅 2019-04-24
  • 打赏
  • 举报
回复
你把相同类型的数据抽象出来, 针对相对类型的数据进行处理. 思路: 拆分-并行计算 如果不能并行,spark 就没意义了
俩只猴 2019-03-28
  • 打赏
  • 举报
回复
引用 1 楼 jdjwxj 的回复:
spark 有个笛卡尔积的算子,但是效率比较差
您好,这个和笛卡尔还不太像, 我现在的做法是行转列,将一个用户的数据转成一列,然后写了一个函数去处理,但是效率贼慢,8000W条还好,生产上30亿条呢。。。跑都跑不动
jdjwxj 2019-03-26
  • 打赏
  • 举报
回复
spark 有个笛卡尔积的算子,但是效率比较差

20,808

社区成员

发帖
与我相关
我的任务
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
  • 分布式计算/Hadoop社区
  • 涤生大数据
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧