Spark RDD案例(六)自定义排序
1. 背景
- 在大数据日常开发中,数据提取,转换,存储等工作是日常主要内容
- spark作为大数据处理分析引擎,底层主要是RDD抽象数据集,更上层的spark sql、dataset、dataframe、dstream等都是基于RDD来抽象的。
- 本文主要讲述关于数据提取中最常见的数据排序处理,使用RDD来实现。最主要的是自定义排序,这也是日常开发中最常见的排序需求,一般都需要自定义排序规则
2.案例代码
- 需求
- 数据
- 环境
- idea 2020
- maven 3.6.3
- jdk 1.8
- scala 2.12.12
- pom文件
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<scala.version>2.12.10</scala.version>
<spark.version>3.0.1</spark.version>
<hbase.version>2.2.5</hbase.version>
<hadoop.version>3.2.1</hadoop.version>
<encoding>UTF-8</encoding>
</properties>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.12</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.73</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
<build>
<pluginManagemen