分享

spark rdd如何做到terasort那样的快速排序

macWang 发表于 2017-6-22 10:32:33 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 10468
我想使用spark rdd做到像terasort那样先取样分区再排序的功能,写了好久效率总是很慢,请大神指教下吧

已有(5)人评论

跳转到指定楼层
einhep 发表于 2017-6-22 12:14:37
从效率来讲,DataFrame比RDD更快一些。方法就那些,所以楼主需要做的是优化集群等。还有你是怎么做的。这样别人才有针对方法。建议尝试DataFrame
回复

使用道具 举报

macWang 发表于 2017-6-22 14:15:54
einhep 发表于 2017-6-22 12:14
从效率来讲,DataFrame比RDD更快一些。方法就那些,所以楼主需要做的是优化集群等。还有你是怎么做的。这样 ...

是这样的,我现在用sparksql从hdfs拿了parquet格式的文件生成DF,文件每行数据都有个string类型的rowkey,拿到这些数据后,我需要像terasort那样根据rowkey分区并排序这些数据。我现在是把这个DF转成了转成了RDD,然后用了sortby排序最后saveasTextFIle落地到了hdfs上。terasort我试过10G数据排序完成只要59s,我这个700M的parquet却需要将近10分钟,我在想这个rdd的分区算法应该怎么写,请指教
回复

使用道具 举报

SuperDove 发表于 2017-6-22 15:50:01
你可以先把你的测试样例代码贴出来,这样根据你的内容才有机会做优化的.....
回复

使用道具 举报

einhep 发表于 2017-6-22 15:57:51
macWang 发表于 2017-6-22 14:15
是这样的,我现在用sparksql从hdfs拿了parquet格式的文件生成DF,文件每行数据都有个string类型的rowkey ...

下面提供三个思路1.重构spark排序算法
2.既然使用terasort效率更高,为何不用terasort排序
3.有个YDB排序方面比spark快速100倍,可以参考。比如建立索引等方式
回复

使用道具 举报

macWang 发表于 2017-6-23 08:44:17
einhep 发表于 2017-6-22 15:57
下面提供三个思路1.重构spark排序算法
2.既然使用terasort效率更高,为何不用terasort排序
3.有个YDB排 ...

谢谢。目前我在想办法重写rdd的getpartition方法。不使用terasort是因为其他原因。YDB我去看一下,谢谢了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条