文档首页 > > 开发指南> Spark应用开发> 开发程序> Spark SQL程序> Scala样例代码

Scala样例代码

分享
更新时间: 2019/04/30 GMT+08:00

功能简介

统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。

代码样例

下面代码片段仅为演示,具体代码参见com.huawei.bigdata.spark.examples.FemaleInfoCollection:

object CollectFemaleInfo {
  //表结构,后面用来将文本数据映射为df
  case class FemaleInfo(name: String, gender: String, stayTime: Int)
  def main(args: Array[String]) {
    //配置Spark应用名称
    val sparkConf = new SparkConf().setAppName("FemaleInfo")
    val sc = new SparkContext(sparkConf)
    val sqlContext = new org.apache.spark.sql.SQLContext(sc)
    import sqlContext.implicits._
    //通过隐式转换,将RDD转换成DataFrame,然后注册表
    sc.textFile(args(0)).map(_.split(","))
      .map(p => FemaleInfo(p(0), p(1), p(2).trim.toInt))
      .toDF.registerTempTable("FemaleInfoTable")
    //通过sql语句筛选女性上网时间数据, 对相同名字行进行聚合
    val femaleTimeInfo = sqlContext.sql("select name,sum(stayTime) as stayTime from FemaleInfoTable where 
?gender = 'female' group by name")
    //筛选出时间大于两个小时的女性网民信息,并输出
    val c = femaleTimeInfo.filter("stayTime >= 120").collect()
    c.foreach(println)
    sc.stop()
  }
}

上面是简单示例,其它sparkSQL特性请参见如下链接:http://spark.apache.org/docs/latest/sql-programming-guide.html#running-sql-queries-programmatically

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问