博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SparkSQL实现wordCount与资源转换
阅读量:3951 次
发布时间:2019-05-24

本文共 2622 字,大约阅读时间需要 8 分钟。

Spark SQL完成WrodCount

//导包import org.apache.spark.sql.SparkSession//编写代码//1.定义SparkSession    val spark = SparkSession.builder().master("local[*]").appName("wordCount").getOrCreate()//2.根据SparkSession获取SparkContext 上下文对象    val sc = spark.sparkContext//3.根据sparkContext读取文件并按照空格 返回RDD    val wordRDD = sc.textFile("./data/words.txt").flatMap(_.split(" "))//4.导入隐式转换    import spark.implicits._    val dataFrame = wordRDD.toDF()//5.wordRDD 进行计算WordContext    dataFrame.createOrReplaceTempView("word")    //=============SQL============//6.编写SQL    var sql="select value,count(value) as count from word group by  value order by count desc"//7.提交SQL语句并查询    spark.sql(sql).show()    //============SDL============    dataFrame.groupBy($"value").count().orderBy($"count" desc).show()

Spark SQL多数据源交互

Spark SQL 可以与多种数据源交互,如普通文本、json、Parquet、csv等

写入数据
//导包import org.apache.spark.sql.{SaveMode, SparkSession}// 定义样例类用来快速保存数据  case class Person(id: Int, name: String, age: Int)  def main(args: Array[String]): Unit = {    //1.实例SparkSession    val spark = SparkSession.builder().master("local[*]").appName("sql").getOrCreate()    //2.根据SparkSession 获取SparkContext 获取上下文对象    val sc = spark.sparkContext    //3.读取数据并按照空格切分保存到person中返回RDD    val personRDD = sc.textFile("./data/person.txt").map(_.split(" ")).map(x => Person(x(0).toInt, x(1), x(2).toInt))    //4.导入隐式类    import spark.implicits._    //5.RDD 转换为DataFrame    val personDF = personRDD.toDF()    //6.将数据转换成json输出    personDF.write.json("./data/json")    //7.将数据转换成cav    personDF.write.csv("./data/csv")    //8.将数据转成 parquet    personDF.write.parquet("./data/parquet")    //9.将数据写入到mysql中    val prop = new Properties()    // 添加用户名    prop.setProperty("user","root")    // 添加密码    prop.setProperty("password","root")    // 写入数据并连接   personDF.write.mode(SaveMode.Overwrite).jdbc("jdbc:mysql://localhost:3306/bigdata0407?characterEncoding=UTF-8","person",prop)
读取数据
//导包import org.apache.spark.sql.SparkSession //1.实例SparkSession    val spark = SparkSession.builder().master("local[*]").appName("sql").getOrCreate()    //2.根据SparkSession获取SparkContext 获取上下文对象    val sc = spark.sparkContext    //3.读取json数据    spark.read.json("./data/json").show()    //4.读取csv文件 添加元数据信息    spark.read.csv("./data/csv").toDF("id", "name", "age").show()    //5.读取parquet数据    spark.read.parquet("./data/parquet").show()    //6.读取mysql数据    val prop = new Properties()    // 添加用户名    prop.setProperty("user", "root")    // 添加密码    prop.setProperty("password", "root")    // 添加连接配置并获取数据    spark.read.jdbc("jdbc:mysql://localhost:3306/bigdata0407?characterEncoding=UTF-8","person",prop).show()

转载地址:http://dokzi.baihongyu.com/

你可能感兴趣的文章
1032 挖掘机技术哪家强 (20 分)
查看>>
今夕何夕 HDU - 6112 ( 模拟 )
查看>>
Dividing HDU - 1059 ( 多重背包 - 二进制简化 )
查看>>
Robberies HDU - 2955 ( 0-1背包 )
查看>>
FATE HDU - 2459 ( 二维完全背包 )
查看>>
B. Working out CodeForces - 429B (动态规划)
查看>>
10635 - Prince and Princess UVA-10635 (最长公共子序列的O(nlogn)的解法:LCS转换为LIS)
查看>>
Sizeof和Strlen
查看>>
lower_bound和upper_bound
查看>>
Subsequence POJ - 3061 ( 尺取法 )
查看>>
常见HTTP状态码大全
查看>>
Python很简单?学会魔术方法才算入门!
查看>>
大数据揭秘:低学历成功逆袭概率多少?结果令人震惊!
查看>>
这16个数据可视化案例,惊艳了全球数据行业
查看>>
大数据死亡率报告揭秘:SUV与轿车到底谁更危险?
查看>>
2017年网络流行语TOP20 , 没用过算我输!
查看>>
GitHub最著名的20个Python机器学习项目!
查看>>
看完这13张图,不得不佩服还是外国人会玩人工智能
查看>>
大数据产业日趋成熟 市场规模将达千亿
查看>>
资源 | Github项目:斯坦福大学CS-224n课程中深度NLP模型的PyTorch实现
查看>>