【发布时间】:2017-02-27 22:01:20
【问题描述】:
我有一个包含多个字段 (username,content,date,bytes) 的 RDD[Log] 文件,我想为每个字段/列找到不同的内容。
例如,我想获取在 RDD 中找到的最小/最大和平均字节数。当我这样做时:
val q1 = cleanRdd.filter(x => x.bytes != 0)
我得到了带有字节的 RDD 的完整行!= 0。但是我怎样才能真正对它们求和、计算平均值、找到最小值/最大值等?如何仅从我的 RDD 中获取一列并对其应用转换?
编辑:Prasad 告诉我有关将类型更改为 dataframe 的事情,但他没有提供有关如何执行此操作的说明,而且我在网站上找不到可靠的答案。任何帮助都会很棒。
编辑:日志类:
case class Log (username: String, date: String, status: Int, content: Int)
使用 cleanRdd.take(5).foreach(println) 会得到类似的结果
Log(199.72.81.55 ,01/Jul/1995:00:00:01 -0400,200,6245)
Log(unicomp6.unicomp.net ,01/Jul/1995:00:00:06 -0400,200,3985)
Log(199.120.110.21 ,01/Jul/1995:00:00:09 -0400,200,4085)
Log(burger.letters.com ,01/Jul/1995:00:00:11 -0400,304,0)
Log(199.120.110.21 ,01/Jul/1995:00:00:11 -0400,200,4179)
【问题讨论】:
标签: scala apache-spark rdd