IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Spark-在循环中使用DataFrame -> 正文阅读

[大数据]Spark-在循环中使用DataFrame

背景

????在业务处理中,经常处理相同的逻辑,只不过每次处理时数据的指标范围不同而已;因此使用循环处理,每次传入不同的参数值,是提高代码质量的必要手段。

代码

val times = Map(
	param_key1 -> param_value1,
	param_ke2 -> param_value2,
	param_ke3 -> param_value3,
	param_ke4 -> param_value4
)
spark.sql(s"""
	|SELECT row_common_1, 
	|	row_common_2,
	|	row_common_3
	|FROM table_name1
	|WHERE event_day = '$day'
	|""".stripMargin).cache().createOrReplaceTempView("common_tmp")

for( (param_key, param_value) -> times )  {
	val param_key_str = operateFunction(param_key)
	spark.sql(s"""
		|SELECT row_operate_1,
		|	row_operate_2,
		|	row_operate_3
		|FROM table_name2
		|WHERE event_day='$day'
		|""".stripMargin).createOrReplaceTempView("operate_tmp")
	spark.sql(s"""
		|SELECT row_common_1, 
		|	row_common_2,
		|	row_common_3,
		|	row_operate_1,
		|	row_operate_2,
		|	row_operate_3
		|FROM common_tmp T1
		|JOIN operate_tmp T2
		|ON T1.row_common_1 = T2.row_operate_1
		|""".stripMargin).createOrReplaceTempView("result_tmp")
	spark.sql(s"""
		|INSERT OVERWRITE TABLE result_table PARTITION (event_day='$day')
		|SELECT *
		|FROM result_tmp
		|""".stripMargin).createOrReplaceTempView("result_tmp"
}

/*
* 一个方法类
*/
def operateFunction( param: String ): String = {
	Functions(......)
}

总结

????在循环中使用DataFrame时,可以在循环外定义一个DataFrame,然后在循环内进行调用;整个循环内逻辑结束后,将结果进行sink;
????不能将循环中得出的结果传出循环外进行使用/调用!!!

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-26 12:08:54  更:2021-07-26 12:09:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/25 16:47:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码