spark操作实例
时间:2020-04-11
本文章向大家介绍spark操作实例,主要包括spark操作实例使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
启动命令
./bin/spark-shell ./bin/spark-shell --master yarn-client //在yarn上启动
操作实例1
val df=sql("select * from default.orders") df.select("user_id").distinct.count() //selectExpr里面可以用hive sql语句 df.selectExpr("max(cast(user_id as int))").show() df.groupBy("order_dow").count().show()
cache和persist 将数据放入内存
val priors = spark.sql("select * from default.order_products_prior") val df2 = df.join(priors,"order_id").cache val df1 = df.groupBy("order_dow").count().cache()
df2.uppersist //从内存中释放
操作实例2
import org.apache.spark.sql.SparkSession object TestFunc { def main(args: Array[String]): Unit = { // 实例化sparksession 在client端自动实例化sparksession // Spark session available as 'spark'. val spark = SparkSession .builder() .appName("test") .master("local[2]") .enableHiveSupport() .getOrCreate() val df = spark.sql("select * from badou.orders") val priors = spark.sql("select * from badou.order_products_prior") """ |4.每个用户根据order_hour_of_day这列的值对order_dow进行排序 |1 2 08 |1 3 07 | |1 [(2,08),(3,07)] | |=> 1 [(3,07),(2,08)] 一个用户最喜爱购买商品的top3 |rdd: (user_id,(order_number,order_hour_of_day)) """.stripMargin import spark.implicits._ val orderNumberSort = df.select("user_id","order_number","order_hour_of_day") .rdd.map(x=>(x(0).toString,(x(1).toString,x(2).toString))) //DataFrame转RDD .groupByKey() .mapValues(_.toArray.sortWith(_._2<_._2).slice(0,2)) .toDF("user_id","order_sort_by_hour") // udf import org.apache.spark.sql.functions._ val plusUDF = udf((col1:String,col2:String)=>col1.toInt+col2.toInt) df.withColumn("plus",plusUDF(col("order_number"),col("order_dow"))).show() } }
原文地址:https://www.cnblogs.com/xumaomao/p/12681326.html
- 前端工程师在业余时间如何提高自身能力——造轮子
- 我是如何Hack掉一个机器人!
- SliferMenu详解
- Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果
- android抓屏
- android 仿qq手写板涂鸦
- listview动态获取数据
- toggbutton
- android软件开发之webView.addJavascriptInterface循环渐进【一】
- android的listview item点击详解
- android之surfaceview画图
- viewgroup实现item拖动效果
- Android之ExpandableListView下拉分组的实现
- 粗略的物体碰撞预测及检测
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何利用Android Studio将moudle变成jar示例详解
- Android自带的四种线程池使用总结
- CentOS8.1搭建Gitlab服务器详细教程
- Android开发之图片旋转功能实现方法【基于Matrix】
- Android编程简单实现拨号器功能的方法
- win10 + Ubuntu20.04 LTS双系统引导界面美化
- Android开发从相册中选取照片的示例代码
- 详解Android WebView的input上传照片的兼容问题
- Ubuntu14.04安装、配置与卸载QT5的步骤详解
- CentOS 8 安装 MariaDB的详细教程
- Android中RecyclerView拖拽、侧删功能的实现代码
- Android单个RecyclerView实现列表嵌套的效果
- Android如何禁止向EditText控件中输入内容详解
- 小程序视角下同构方案思考
- Android基于自带的DownloadManager实现下载功能示例