Spark分布式计算框架之SparkSQL
spark sql
yj2434
贪财好色,一身正气
展开
-
SparkSQL_经典案例分析_数据表行列变化转换分析_collect_list()&collect_set()&str_to_map函数
import org.apache.spark.sql.SparkSession/** * 数据的行列变化: * 多行数据到一行数据中 * 例如: * +--------+----+-----+ +--------+---------+-----+ * |username|item|price| |username|item |price| * +--------+----+-----+ +--------+--------原创 2020-11-05 23:39:25 · 1131 阅读 · 0 评论 -
SparkSQL_经典案例分析_找出状态变化的行
找出状态变化的行import org.apache.spark.sql.SparkSession/** * 案例: 找出变化的行 * 开窗函数 + 表的自关联实现 */object FindChangeInfos { def main(args: Array[String]): Unit = { val session = SparkSession.builder().master("local").appName("test").getOrCreate() session原创 2020-11-05 22:38:34 · 230 阅读 · 0 评论 -
SparkSQL Over 开窗函数使用
开窗函数注意:row_number() 开窗函数是按照某个字段分组,然后取另一字段的前几个的值,相当于 分组取 topN,在 MySql8 之后也增加了开窗函数。开窗函数格式:row_number() over (partitin by XXX order by XXX) 同个分组内生成连续的序号,每个分组内从 1 开始且排序相同的数据会标不同的号。rank() over (partitin by XXX order by XXX) 同个分组内生成不连续的序号,在每个分组内从 1 开始,同个原创 2020-11-05 16:02:24 · 1093 阅读 · 0 评论 -
SparkSQL 自定义聚合函数UDAF实战应用
1. UDAF:用户自定义聚合函数。自定义聚合函数(UDAF)可以将多条记录聚合成1条记录。实现 UDAF 函数如果要自定义类要继承UserDefinedAggregateFunction 类Spark3.0以后应继承Aggregator类UDAF 原理图:示例代码:import org.apache.spark.SparkConfimport org.apache.spark.sql.{Dataset, Encoder, Encoders, SparkSession}import or原创 2020-11-05 04:32:57 · 220 阅读 · 0 评论 -
SparkSQL 自定义函数UDF应用
/** * SparkSQL UDF : User Defined Function - 用户自定义函数 */object SparkSqlUDF { def main(args: Array[String]): Unit = { val session = SparkSession.builder().master("local").appName("test").getOrCreate() val nameList = List[String]("zhangsan", "li原创 2020-11-04 23:48:28 · 89 阅读 · 0 评论 -
SparkSQL3.0.1 读取Hive2.3.0中的数据加载DataFrame 02
在本地使用scala代码示例:经测试需要把hdfs-site.xml及hive-site.xml及core-site.xml文件放置于本地resource中hive-site.xml配置如下:<configuration> <property> <name>hive.metastore.local</name> <value>false</value> </prop原创 2020-11-04 23:13:32 · 365 阅读 · 0 评论 -
SparkSQL_Spark3.0.1 on Hive 配置及SparkSQL连接Hive测试
官网地址spark SQL经常需要访问Hive metastore,Spark SQL可以通过Hive metastore获取Hive表的元数据。从Spark 1.4.0开始,Spark SQL只需简单的配置,就支持各版本Hive metastore的访问。注意,涉及到metastore时Spar SQL忽略了Hive的版本。Spark SQL内部将Hive反编译至Hive 1.2.1版本,Spark SQL的内部操作(serdes, UDFs, UDAFs, etc)都调用Hive 1.2.1版本的cl原创 2020-11-04 18:46:58 · 2057 阅读 · 0 评论 -
SparkSQL读取Tuple类型的Dataset加载DatFrame
测试数据:146.202.84.90 江西 2020-10-28 1603879301437 6285032924209569490 www.jd.com Login146.202.84.90 江西 2020-10-28 1603879301438 6285032924209569490 www.gome.com.cn Login146.202.84.90 江西 2020-10-28 1603879301438 6285032924209569490 www.taobao.com Comment11原创 2020-11-04 01:44:54 · 375 阅读 · 0 评论 -
SparkSQL读取csv格式的数据加载DatFrame
import org.apache.spark.sql.SparkSession/** * 读取csv格式的文件。 */object ReadCsvDataToDF { def main(args: Array[String]): Unit = { val session: SparkSession = SparkSession.builder() .master("local[1]") .appName("ReadCsvDataToDF") .get原创 2020-11-04 00:02:16 · 320 阅读 · 0 评论 -
SparkSQL读取Parquet格式的数据加载DatFrame
import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}/**读取Parquet格式的数据加载DataFrame注意:1).parquet是一种列式存储格式,默认是有压缩。Spark中常用的一种数据格式2).读取Parquet格式的数据两种方式3).可以将DataFrame保存成Json或者Pauquet格式数据,注意保存模式*/object ReadParquetFileToDF {def main原创 2020-11-03 23:51:57 · 364 阅读 · 0 评论 -
SparkSQL读取普通格式的RDD通过动态创建Schema方式加载DatFrame
示例代码:import org.apache.spark.rdd.RDDimport org.apache.spark.sql.types.{DataTypes, StructField, StructType}import org.apache.spark.sql.{Row, SparkSession}/** * 通过动态创建Schema方式将普通格式的RDD转换成DataFrame * 注意: * 创建StructType类型的数据时,StructField字段的顺序需要与构建的RDD[原创 2020-11-03 23:20:26 · 436 阅读 · 0 评论 -
SparkSQL读取普通格式的RDD通过反射方式加载DatFrame
import org.apache.spark.rdd.RDDimport org.apache.spark.sql.{DataFrame, SparkSession}/** * 通过反射方式将普通格式的RDD转换成DataFrame * 注意: 反射的方式将自定义类型的RDD转换成DataFrame过程中,会自动将对象中的属性当做DataFrame 中的列名,将自定义对象中的属性的类型当做DataFrame * 列的schema信息。 */case class PersonInfo(id原创 2020-11-03 22:28:24 · 89 阅读 · 0 评论 -
SparkSQL读取Json格式的RDD加载DatFrame
示例代码:import org.apache.spark.sql.{DataFrame, Dataset, SparkSession}/** * 读取json格式的RDD就是RDD中的String是一个json字符串。 * Spark2.0 之前 session.read.json(JSONRDD) * Spark2.0之后 session.read.json(JSONDATASET) */object ReadJsonRDDToDF { def main(args: Array[Str原创 2020-11-03 18:01:43 · 470 阅读 · 0 评论 -
SparkSQL_SparkSQL读取Json格式的数据加载DatFrame
maven依赖:<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.12</artifactId> <version>3.0.1</version> </dependency> <dependency> <groupId>org.apache.spark&l原创 2020-11-03 17:45:22 · 162 阅读 · 0 评论 -
SparkSql 介绍;Hive & Shark & SparkSQL 区别
1.SparkSQL 支持Spark 写SQL处理分布式数据。2.SparkSQL 发展过程:Hive -> Shark -> SparkSQL面试题:Hive & Shark & SparkSQL 区别?1).Hive 支持写SQL 查询分布式数据,底层Hive负责SQL解析优化,转成MapReduce任务处理数据。2).Shark 是早期Spark与Hive整合出来的,支持Sprak中写SQL查询分布式数据技术,Shark依赖了hive的解析优化SQL,底层转成S原创 2020-11-02 18:34:13 · 3241 阅读 · 0 评论