分享

Spark Scala急求

怎们用Scala 编写一个通过时间找到对应的ip..........,然后按时间排序


temp.png

已有(9)人评论

跳转到指定楼层
xuanxufeng 发表于 2017-11-24 11:55:22
本帖最后由 xuanxufeng 于 2017-11-24 12:07 编辑

这里只提供思路,更多自己去写
首先通过spark提供的api,去读取文件。由于你提供的信息太少,想要完成的内容太多,这里全部默认为数据存在文本文件,而且是在hdfs中。
回复

使用道具 举报

xuanxufeng 发表于 2017-11-24 11:57:19
本帖最后由 xuanxufeng 于 2017-11-24 12:06 编辑

spark去读取文件,形成rdd,那么如何度那?通过下面方式:lines = sc.textFile(your file path)
里面的sc是sparkcontext的实例
lines为rdd
rdd形成,接着我们就可以过滤数据,这时候你可以搜索rdd api,他有过滤函数,比如filter,这样过滤时间,找到时间对应的行,这行数据线到了,ip自然找到了
回复

使用道具 举报

czs208112 发表于 2017-11-26 09:45:40
sc.textFile(filepath).map(_.split("\\|")).sortBy(_(2)).map(_(1))
提问真是只图自己方便,敢不敢描述清楚点,数据能不能贴个文本。
回复

使用道具 举报

hutonm 发表于 2017-11-27 09:23:08
麻烦问题再详细点
回复

使用道具 举报

fly2015 发表于 2017-11-27 11:35:57
df.filter().sort()
回复

使用道具 举报

逆光之处是快乐 发表于 2017-11-27 13:49:08
就是想通过时间找到对应的ip,然后再按时间进行排序
用scala 编写一个通过时间找到对应的ip ,然后按时间排序  文本txt我共享了,大神帮忙一下..........用,划分,iptv是那个ip, 20171123120027那一列时间    ,怎们用scala编写..................
00|iptv2014070803|20171123120027|08
00|iptv2014030803|20171123120032|01
00|iptv2014050901|20171123120056|08
00|iptv2014070803|20171123120057|08
00|iptv2014030803|20171123120102|01
00|iptv2014050901|20171123120126|08
00|iptv2014070803|20171123120127|08
00|iptv2014030803|20171123120132|01
00|iptv2014050901|20171123120156|08
00|iptv2014070803|20171123120157|08
00|iptv2014030803|20171123120202|01
00|iptv2014050901|20171123120226|08
00|iptv2014070803|20171123120227|08
回复

使用道具 举报

zstu 发表于 2017-11-28 14:16:27

通过时间找到对应的ip,然后再按时间进行排序?  是一个时间对应多个ip,然后按时间对这多个ip排序吗,还是只有一个ip只是要找到这个ip,然后对源文件按时间排序
回复

使用道具 举报

desehawk 发表于 2017-11-29 06:50:07

首先我这里将这个文件保存为question.txt文件,并且上传到hdf。



然后进入spark-shell去读取这个文件,这里使用的是spark2
首先通过SparkSesstion创建sparkcontext
[mw_shl_code=scala,true]val sc=spark.sparkContext
[/mw_shl_code]

然后读取文件
[mw_shl_code=scala,true]val file=sc.textFile("/question.txt")
[/mw_shl_code]


我们来看读取的内容


这时候我们就可以操作了
比如我们寻找时间为:20171123120027的列:
[mw_shl_code=scala,true]val query= file.filter(x=>x.contains("20171123120027"))
[/mw_shl_code]
这样query里面就是我们想要得到的内容,我们打印query


ok,这样就得到我们想要的结果了。如果排序,可以在后面在加上.sortByKey()


帖子重复了
Spark  Scala
http://www.aboutyun.com/forum.php?mod=viewthread&tid=23405


回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条