逆光之处是快乐 发表于 2017-11-27 13:46:17

Spark Scala

用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





逆光之处是快乐 发表于 2017-11-27 13:47:56

就是想通过时间找到对应的ip,然后再按时间进行排序

hutonm 发表于 2017-11-27 14:11:35

划分成为 时间:ip 然后对时间进行排序 可以吗?

逆光之处是快乐 发表于 2017-11-27 14:29:28

恩,我的意思就是通过那个时间找到对应的ip,然后按时间进行排序

hutonm 发表于 2017-11-27 14:39:09

def main(args: Array): Unit = {
        val spark = SparkSession
                  .builder()
                  .master("local")
                  .appName("iptime")
                  .getOrCreate()

        val filerdd = spark.sparkContext.textFile("f:\\iptime.txt")
        val result = filerdd.map(line =>{
          val lineArray = line.split("\\|")
          (lineArray(2),lineArray(1).substring(4))
        }).sortByKey()
        println(result.collect.toBuffer)
}

desehawk 发表于 2017-11-27 14:42:40

本帖最后由 desehawk 于 2017-11-27 14:46 编辑

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



然后进入spark-shell去读取这个文件,这里使用的是spark2
首先通过SparkSesstion创建sparkcontext
val sc=spark.sparkContext
然后读取文件
val file=sc.textFile("/question.txt")


我们来看读取的内容


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


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







逆光之处是快乐 发表于 2017-11-27 14:45:07

恩,谢了
页: [1]
查看完整版本: Spark Scala