spark之action算子学习笔记(scala,pyspark双语言)

这篇具有很好参考价值的文章主要介绍了spark之action算子学习笔记(scala,pyspark双语言)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、collect

函数签名:def collect(): Array[T]
功能说明:收集每个分区数据,以数组Array的形式封装后发给driver。设置driver内存:bin/spark-submit --driver-memory 10G(内存大小)
spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据
注意:collect会把所有分区的数据全部拉取到driver端,如果数据量过大,可能内存溢出。

import org.apache.spark.{SparkConf, SparkContext}

object actons_demo {
  def main(args: Array[String]): Unit = {
    //创建sparkcontext
    val conf = new SparkConf().setAppName("test").setMaster("local[*]")
    val sc = new SparkContext(conf)
    //创建数据
    val rdd = sc.parallelize(List(2, 3, 0, 4, 1), 2)
    println(rdd.collect.toList)
  }

}

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图1 结果
from pyspark import SparkConf,SparkContext

# 创建sparkcontext
conf = SparkConf().setAppName("test").setMaster("local[*]")
sc = SparkContext(conf=conf)

# 创建数据
datas = sc.parallelize([2, 3, 0, 4, 1],numSlices=2)

# 使用collect
print(datas.collect())

# 关闭sparkcontext
sc.stop()

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图2 结果

二、count

返回RDD中元素的个数
spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

import org.apache.spark.{SparkConf, SparkContext}

object actons_demo {
  def main(args: Array[String]): Unit = {
    //创建sparkcontext
    val conf = new SparkConf().setAppName("test").setMaster("local[*]")
    val sc = new SparkContext(conf)
    //创建数据
    val rdd = sc.parallelize(List(2, 3, 0, 4, 1), 2)
    println(rdd.count)
  }

}

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图3 结果
from pyspark import SparkConf,SparkContext

# 创建sparkcontext
conf = SparkConf().setAppName("test").setMaster("local[*]")
sc = SparkContext(conf=conf)

# 创建数据
datas = sc.parallelize([2, 3, 0, 4, 1],numSlices=2)

# 使用count
print(datas.count())

# 关闭sparkcontext
sc.stop()

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图4 结果

三、first

返回RDD中的第一个元素
first首先启动一个job从0号分区获取数据,如果0号分区没有数据,则启动第二个job从其他分区获取数据

import org.apache.spark.{HashPartitioner, SparkConf, SparkContext}

object actons_demo {
  def main(args: Array[String]): Unit = {
    //创建sparkcontext
    val conf = new SparkConf().setAppName("test").setMaster("local[*]")
    val sc = new SparkContext(conf)
    //创建数据
    val rdd = sc.parallelize(List(2, 3, 0, 4, 1), 2)
    println(rdd.first())
    //利用哈希分区器重新分区
    val rdd2 = rdd.map(x=>(x,null)).partitionBy(new HashPartitioner(10))
    println(rdd2.first())
  }

}

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图5 结果
from pyspark import SparkConf, SparkContext

# 创建sparkcontext
conf = SparkConf().setAppName("test").setMaster("local[*]")
sc = SparkContext(conf=conf)

# 创建数据
datas = sc.parallelize([2, 3, 0, 4, 1], numSlices=2)

# 使用first
print(datas.first())
# 重新分区
datas2 = datas.map(lambda x: (x, None)).partitionBy(10, lambda x: x % 10)
# 使用first
print(datas2.first())
# 关闭sparkcontext
sc.stop()

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图6 结果

四、take

返回一个由RDD的前n个元素组成的数组
首先启动一个job从0号分区获取n个数据,如果0号分区没有n个数据,则启动第二个job从其他分区继续获取剩余数据

import org.apache.spark.{SparkConf, SparkContext}

object actons_demo {
  def main(args: Array[String]): Unit = {
    //创建sparkcontext
    val conf = new SparkConf().setAppName("test").setMaster("local[*]")
    val sc = new SparkContext(conf)
    //创建数据
    val rdd = sc.parallelize(List(2, 3, 0, 4, 1), 2)
    println(rdd.take(2).toList)
  }
}

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图7 结果
from pyspark import SparkConf, SparkContext

# 创建sparkcontext
conf = SparkConf().setAppName("test").setMaster("local[*]")
sc = SparkContext(conf=conf)

# 创建数据
datas = sc.parallelize([2, 3, 0, 4, 1], numSlices=2)

# 使用take
print(datas.take(2))
# 关闭sparkcontext
sc.stop()

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图8 结果

五、takeOrdered

返回RDD排序后的前n个元素组成的数组。全局有序排列后的结果

import org.apache.spark.{SparkConf, SparkContext}

object actons_demo {
  def main(args: Array[String]): Unit = {
    //创建sparkcontext
    val conf = new SparkConf().setAppName("test").setMaster("local[*]")
    val sc = new SparkContext(conf)
    //创建数据
    val rdd = sc.parallelize(List(7,2,3,4,9,0,-5,-2,8,6,5),4)
    println(rdd.takeOrdered(4).toList)
  }
}

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图9 结果
from pyspark import SparkConf, SparkContext

# 创建sparkcontext
conf = SparkConf().setAppName("test").setMaster("local[*]")
sc = SparkContext(conf=conf)

# 创建数据
datas = sc.parallelize([7,2,3,4,9,0,-5,-2,8,6,5], numSlices=4)

# 使用takeOrdered
print(datas.takeOrdered(4))
# 关闭sparkcontext
sc.stop()

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图10 结果

六、countByKey

函数签名:def countByKey(): Map[K, Long]
功能说明:统计每种key的个数
spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

import org.apache.spark.{SparkConf, SparkContext}

object actons_demo {
  def main(args: Array[String]): Unit = {
    //创建sparkcontext
    val conf = new SparkConf().setAppName("test").setMaster("local[*]")
    val sc = new SparkContext(conf)
    //创建数据a
    val rdd = sc.parallelize(List("aa"->11,("aa",5),"bb"->4,"bb"->11,("bb",9),"cc"->1))
    println(rdd.countByKey().toList)
  }
}

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图11 结果
from pyspark import SparkConf, SparkContext

# 创建sparkcontext
conf = SparkConf().setAppName("test").setMaster("local[*]")
sc = SparkContext(conf=conf)

# 创建数据
datas = sc.parallelize([("aa",11),("aa",5),("bb",4),("bb",11),("bb",9),("cc",1)])

# 使用countByKey
print(datas.countByKey())
# 关闭sparkcontext
sc.stop()

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图12 结果

七、foreach

遍历RDD中每一个元素

import org.apache.spark.{SparkConf, SparkContext}

object actons_demo {
  def main(args: Array[String]): Unit = {
    //创建sparkcontext
    val conf = new SparkConf().setAppName("test").setMaster("local[*]")
    val sc = new SparkContext(conf)
    //创建数据
    val rdd = sc.parallelize(List("aa"->11,("aa",5),"bb"->4,"bb"->11,("bb",9),"cc"->1))
    rdd.foreach(println)
  }
}

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图13 结果
from pyspark import SparkConf, SparkContext

# 创建sparkcontext
conf = SparkConf().setAppName("test").setMaster("local[*]")
sc = SparkContext(conf=conf)

# 创建数据
datas = sc.parallelize([("aa",11),("aa",5),("bb",4),("bb",11),("bb",9),("cc",1)])

# 使用foreach
datas.foreach(print)
# 关闭sparkcontext
sc.stop()

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图14 结果

八、简单案例

java spark
hadoop spark java
python spark
C++ python

统计word.txt中每个单词的数量,并按照数量多少从高到低排序

import org.apache.spark.{SparkConf, SparkContext}

object WordCount {
  def main(args: Array[String]): Unit = {
    //创建sparkcontext对象
    val conf = new SparkConf().setAppName("wordcount").setMaster("local[*]")
    val sc = new SparkContext(conf)
    //读取数据
    val datas = sc.textFile("hdfs://hadoop101:8020/input/word.txt")
    //处理
    // 实现思路:按空格切分单词,并压平 -> 处理成键值对,键是单词,值是1 -> 按照键分组统计 -> 排序
    val res1 = datas.flatMap(_.split(" ")).
      map(x => (x, 1)).
      reduceByKey(_ + _).
      sortBy(_._1, ascending = false)
    println(s"结果:${res1.collect.toList}")
  }
}

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图15 结果
from pyspark import SparkConf, SparkContext

# 创建sparkcontext
conf = SparkConf().setAppName("test").setMaster("local[*]")
sc = SparkContext(conf=conf)

# 读取数据
datas = sc.textFile("hdfs:///input/word.txt")
# 处理
# 实现思路:按空格切分单词,并压平 -> 处理成键值对,键是单词,值是1 -> 按照键分组统计 -> 排序
res = datas. \
    flatMap(lambda x: x.split(" ")). \
    map(lambda x: (x, 1)). \
    reduceByKey(lambda x, y: x + y). \
    sortBy(lambda x: x[1])

print(f"结果为:{res.collect()}")
# 关闭sparkcontext
sc.stop()

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图16 结果

九、一个综合案例

00:00:02*****7139261067744087*****[党宁的博客]*****5*****4*****blog.sina.com.cn/u/1232113891*****党宁 的 博客
00:00:02*****8181820631750396*****[窗外]*****5*****2*****www.zhulang.com/4212/index.html*****窗外
00:00:02*****28556208222257873*****[2008年新兴行业]*****3*****15*****zhidao.baidu.com/question/48881311*****2008 年 新兴 行业
00:00:02*****3648075681022645*****[耐克凉鞋]*****4*****18*****auction1.taobao.com/auction/item_detail-0db2-a4938311dd2df6585692bee8e67ce6e6.jhtml*****耐克 凉鞋
00:00:02*****6317584696510536*****[哄抢救灾物资]*****1*****1*****news.21cn.com/social/daqian/2008/05/29/4777194_1.shtml*****哄抢 救灾物资

以上数据是2008年用户在搜狗搜索上的部分搜索情况。
数据数据格式:访问时间 用户ID 查询词 该URL在返回结果中的排名 用户点击的顺序号 用户点击的URL 查询词的分词结果。
数据利用五个*进行分割,最后一个*****的右边是对查询词分词后的结果。查询词分词结果用空格进行分割
需求如下:

  1. 搜索关键词的词频统计:按词频数量倒序排序
  2. 用户搜索点击统计:用户id+用户搜索内容的点击数,逆序排序
  3. 搜索时间段统计:统计不同时间范围内容搜索次数,按照小时统计

9.1 需求1的实现

要统计关键词的词频,需要先对用户输入的查询词进行分词处理,然后再按照分词后的结果进行词频统计。由于文本文件中的数据已经对查询词进行了分词,所以直接读取分词结果就可以。再对分词结果进行切分,统计词频,最后再倒序输出。

import org.apache.spark.{SparkConf, SparkContext}

object demo1 {
  def main(args: Array[String]): Unit = {
    //创建sparkcontext对象
    val conf = new SparkConf().setAppName("demo1").setMaster("local[*]")
    val sc = new SparkContext(conf)
    //读取数据
    val datas = sc.textFile("hdfs://hadoop101:8020/data/sougou/output.txt")
    //处理
    // 实现思路:
    // 1.获取查询词的分词结果,并利用空格进行切分
    // 2.对查询词分词后的结果进行分组统计
    // 3.对词频倒序排序
    val res1 = datas.map(x => x.split("\\*\\*\\*\\*\\*")).
      flatMap(x=>x.last.split(" ")).
      map(x => (x, 1)).
      reduceByKey(_ + _).
      sortBy(_._2, ascending = false)
    println(res1.take(20).toList)
  }
}

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图17 结果
from pyspark import SparkConf, SparkContext
from pprint import pprint

# 创建sparkcontext
conf = SparkConf().setAppName("demo1").setMaster("local[*]")
sc = SparkContext(conf=conf)

# 读取数据
print("读取数据...")
datas = sc.textFile("hdfs:data/sougou/output.txt")
print("数据读取完毕!")
# 处理
# 数据格式:访问时间         用户ID                查询词   该URL在返回结果中的排名  用户点击的顺序号  用户点击的URL               查询词的分词结果。
# 样例数据:00:00:02*****28556208222257873*****[2008年新兴行业]*****3*****15*****zhidao.baidu.com/question/48881311*****2008 年 新兴 行业
# 需要对查询词进行分词
print("开始处理...")
# 实现思路:
# 1.获取查询词的分词结果,并利用空格进行切分
# 2.对查询词分词后的结果进行分组统计
# 3.对词频倒序排序
datas_query = datas.map(lambda x:x.split("*****")[-1]).\
    flatMap(lambda x:x.split(" ")).map(lambda x:(x,1)).\
    reduceByKey(lambda x,y:x+y).\
    sortBy(lambda x:x[1],ascending=False)
print("处理完毕!")
pprint(f"前20个结果为:{datas_query.take(20)}")
# 关闭sparkcontext
sc.stop()

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图18 结果

9.2 需求2的实现

首先拼接用户id和用户搜索内容,再对统计数量,最后再倒序输出。

import org.apache.spark.{SparkConf, SparkContext}

object Demo1 {
  def main(args: Array[String]): Unit = {
    //创建sparkcontext对象
    val conf = new SparkConf().setAppName("demo1").setMaster("local[*]")
    val sc = new SparkContext(conf)
    //读取数据
        val datas = sc.textFile("hdfs://hadoop101:8020/data/sougou/output.txt")
    // 实现思路:
    //  1.获取数据,并利用分隔符*****进行切分
    //  2.合并用户ID和查询词,同时增加一个计数1
    //  3.按照键进行分组统计
    //  4.对词频倒序排序
    //scala中的*号是特殊符号,需要转义
    val datas_query = datas.map(x => x.split("\\*\\*\\*\\*\\*")).
      map(x=>(x(1)+x(2),1)).
      reduceByKey(_+_).sortBy(_._2,ascending = false)
    println(datas_query.take(20).toList)
    sc.stop()
  }
}

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图19 结果
from pyspark import SparkConf, SparkContext
from pprint import pprint

# 创建sparkcontext
conf = SparkConf().setAppName("demo1").setMaster("local[*]")
sc = SparkContext(conf=conf)

# 读取数据
print("读取数据...")
datas = sc.textFile("hdfs:data/sougou/output.txt")
print("数据读取完毕!")
# 处理
# 数据格式:访问时间         用户ID                查询词   该URL在返回结果中的排名  用户点击的顺序号  用户点击的URL               查询词的分词结果。
# 样例数据:00:00:02*****28556208222257873*****[2008年新兴行业]*****3*****15*****zhidao.baidu.com/question/48881311*****2008 年 新兴 行业
# 需要对查询词进行分词
print("开始处理...")
# 实现思路:
# 1.获取数据,并利用分隔符*****进行切分
# 2.合并用户ID和查询词,同时增加一个计数1
# 3.按照键进行分组统计
# 4.对词频倒序排序
datas_query = datas.\
    map(lambda x:x.split("*****")).\
    map(lambda x:(x[1]+x[2],1)).\
    reduceByKey(lambda x,y:x+y).\
    sortBy(lambda x:x[1],ascending=False)
print("处理完毕!")
pprint(f"前20个结果为:{datas_query.take(20)}")
# 关闭sparkcontext
sc.stop()

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图20 结果

9.3 需求3的实现

统计不同时间范围内容搜索次数,按照小时统计
选取时间列,构造以小时为键,1为值的键值对,再对结果进行聚合统计,最后再倒序输出。

import org.apache.spark.{SparkConf, SparkContext}

object Demo1 {
  def main(args: Array[String]): Unit = {
    //创建sparkcontext对象
    val conf = new SparkConf().setAppName("demo1").setMaster("local[*]")
    val sc = new SparkContext(conf)
    //读取数据
        val datas = sc.textFile("hdfs://hadoop101:8020/data/sougou/output.txt")
    // 实现思路:
    //  1.获取数据,并利用分隔符*****进行切分
    //  2.对时间进行分割,以小时为键,1为值,构建键值对
    //  3.按照键进行分组统计
    //  4.对词频倒序排序
    //scala中的*号是特殊符号,需要转义
    val datas_query = datas.map(x => x.split("\\*\\*\\*\\*\\*")).
      map(x=>(x(0).split(":")(0),1)).
      reduceByKey(_+_).
      sortBy(_._2,ascending = false)
    println(datas_query.take(20).toList)
    sc.stop()
  }
}

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据

图21 结果
from pyspark import SparkConf, SparkContext
from pprint import pprint

# 创建sparkcontext
conf = SparkConf().setAppName("demo1").setMaster("local[*]")
sc = SparkContext(conf=conf)

# 读取数据
print("读取数据...")
datas = sc.textFile("hdfs:data/sougou/output.txt")
print("数据读取完毕!")
# 处理
# 数据格式:访问时间         用户ID                查询词   该URL在返回结果中的排名  用户点击的顺序号  用户点击的URL               查询词的分词结果。
# 样例数据:00:00:02*****28556208222257873*****[2008年新兴行业]*****3*****15*****zhidao.baidu.com/question/48881311*****2008 年 新兴 行业
# 需要对查询词进行分词
print("开始处理...")
# 实现思路:
# 1.获取数据,并利用分隔符*****进行切分
# 2.对时间进行分割,以小时为键,1为值,构建键值对
# 3.按照键进行分组统计
# 4.对词频倒序排序
datas_query = datas.\
    map(lambda x:x.split("*****")).\
    map(lambda x:(x[0].split(":")[0],1)).\
    reduceByKey(lambda x,y:x+y).\
    sortBy(lambda x:x[1],ascending=False)
print("处理完毕!")
pprint(f"前20个结果为:{datas_query.take(20)}")
# 关闭sparkcontext
sc.stop()

spark之action算子学习笔记(scala,pyspark双语言),大数据,spark,scala,python,大数据文章来源地址https://www.toymoban.com/news/detail-767107.html

图22 结果

到了这里,关于spark之action算子学习笔记(scala,pyspark双语言)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spark大数据分析与实战笔记(第一章 Scala语言基础-1)

    Spark是专为大规模数据处理而设计的快速通用的计算引擎,它是由Scala语言开发实现的,关于大数据技术,本身就是计算数据,而Scala既有面向对象组织项目工程的能力,又具备计算数据的功能,同时Spark和Scala的紧密集成,本书将采用Scala语言开发Spark程序,所以学好Scala将有助

    2024年02月11日
    浏览(43)
  • Spark大数据分析与实战笔记(第一章 Scala语言基础-3)

    对于每一门编程语言来说,数组(Array)都是重要的数据结构之一,主要用来存储数据类型相同的元素。Scala中的数组分为定长数组和变长数组,定义定长数组,需要使用new,而定义变长数组时,则需要导包 import scala.collection.mutable.ArrayBuffer 。 数组(Array)主要用来存储

    2024年02月10日
    浏览(43)
  • 大数据面试题:说下Spark中的Transform和Action,为什么Spark要把操作分为Transform和Action?

    面试题来源: 《大数据面试题 V4.0》 大数据面试题V3.0,523道题,679页,46w字 可回答:Spark常见的算子介绍一下 参考答案: 我们先来看下Spark算子的作用: 下图描述了Spark在运行转换中通过算子对RDD进行转换。 算子是RDD中定义的函数,可以对RDD中的数据进行转换和操作。 输

    2024年02月13日
    浏览(27)
  • Spark Scala大数据编程实例

    Scala是一门现代的多范式编程语言,平滑地集成了面向对象和函数式语言的特性,旨在以简练、优雅的方式来表达常用编程模式。Scala的设计吸收借鉴了许多种编程语言的思想,只有很少量特点是Scala自己独有的。Scala语言的名称来自于“可伸展的语言”,从写个小脚本到建立

    2024年02月04日
    浏览(39)
  • Spark 读写 es 数据(scala 版)

    读取 hdfs 文件 解析采用 fast-json : 1、 pom.xml 2、 main 文件 运行结果: 1、 pom.xml 2、 main 文件 参考文章 Spark读写ES数据时遇到的问题总结 Spark读写ES 使用Apache Spark将数据写入ElasticSearch

    2024年02月11日
    浏览(30)
  • 《PySpark大数据分析实战》-12.Spark on YARN配置Spark运行在YARN上

    📋 博主简介 💖 作者简介:大家好,我是wux_labs。😜 热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。 通过了微软Azure开发人员、Azure数据工程师、Azure解决

    2024年02月03日
    浏览(42)
  • Python与大数据:Hadoop、Spark和Pyspark的应用和数据处理技巧

      在当今的数字时代,数据成为了无处不在的关键资源。大数据的崛起为企业提供了无限的机遇,同时也带来了前所未有的挑战。为了有效地处理和分析大规模数据集,必须依靠强大的工具和技术。在本文中,我们将探讨Python在大数据领域的应用,重点介绍Hadoop、Spark和Pysp

    2024年02月16日
    浏览(35)
  • Python大数据之PySpark(三)使用Python语言开发Spark程序代码

    Spark Standalone的PySpark的搭建----bin/pyspark --master spark://node1:7077 Spark StandaloneHA的搭建—Master的单点故障(node1,node2),zk的leader选举机制,1-2min还原 【scala版本的交互式界面】bin/spark-shell --master xxx 【python版本交互式界面】bin/pyspark --master xxx 【提交任务】bin/spark-submit --master xxxx 【学

    2024年01月17日
    浏览(39)
  • 【大数据】Spark学习笔记

    Hadoop Spark 起源时间 2005 2009 起源地 MapReduce University of California Berkeley 数据处理引擎 Batch Batch 编程模型 MapReduce Resilient distributed Datesets 内存管理 Disk Based JVM Managed 延迟 高 中 吞吐量 中 高 优化机制 手动 手动 API Low level high level 流处理 NA Spark Streaming SQL支持 Hive, Impala SparkSQL Gra

    2024年02月03日
    浏览(30)
  • 简单使用Spark、Scala完成对天气数据的指标统计

    目录 一、前言   什么是Spark?   什么是Scala 二、数据准备(数据类型的转换) 三、Spark部分 1、使用Spark完成数据中的“风级”,“风向”、“天气情况”相关指标统计及筛选 四、Scala部分 1、使用Scala统计某月、全年的温差、平均气温以及最值等相关的指标 五、遇到的问题

    2024年02月03日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包