你好,游客 登录
背景:
阅读新闻

Spark中RDD、DataFrame、Dataset中 wordCount实例

[日期:2017-09-23] 来源:datagru  作者:naploen [字体: ]

2、RDDDataFrameDataset常见wordCount实例

(1)RDD例子:
object WordCount {
   def main(args: Array[String]) {
   if (args.length < 1) {
      System.err.println("Usage: <file>")
      System.exit(1)
     }

 

     val conf = new SparkConf()
     val sc = new SparkContext(conf)
     val line = sc.textFile(args(0))

 

     line.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).collect().foreach(println)

 

     sc.stop()
   }
}

 

(2)DataFrame 例子:

 

object WordCount {
  def main(args:Array[String]):Unit={
    //获取context
    val sc=new SparkContext(new SparkConf().setAppName("word").setMaster("local[1]"))
    //获取SQLContext
    val sqlContext=new SQLContext(sc)
    //加载RDD
    val lines=sc.textFile("dataframeword.txt")
    //转换rows
    val rows=lines.map { x => Row(x) }
    //创建structField
    val field=Array(DataTypes.createStructField("name", DataTypes.StringType, true))
    //创建structType
    val structType=DataTypes.createStructType(field)
    //等价于一句话:  val structTy=StructType(Array(StructField("name", StringType, true)))
    //创建dataframe
    val df=sqlContext.createDataFrame(rows, structType)
    //注册表
    df.registerTempTable("t_word")
    //注册函数
    sqlContext.udf.register("str", (name:String)=>1)
    //sql语句查询返回结果
    sqlContext.sql("select name,str(name) from t_word ").groupBy(df.col("name")).count().show
    //关闭资源
    sc.stop()
  }
}
(3)Dataset wordCount例子

 

import org.apache.spark.sql.SparkSession

 

/**
  * Created by https://www.iteblog.com
  */
object DataSetWordCount {
  def main(args: Array[String]) {
    val sparkSession = SparkSession.builder.
     master("local")
     .appName("example")
     .getOrCreate()
    import sparkSession.implicits._
    val data = sparkSession.read.text("src/main/resources/data.txt").as[String]
    val words = data.flatMap(value => value.split("\\s+"))
    val groupedWords = words.groupByKey(_.toLowerCase)

 

    val counts = groupedWords.count()
    counts.show()
  }
}
收藏 推荐 打印 | 阅读:
相关新闻       rdd  dataframe