spark 实战笔记case1

Spark SQL API——使用Case Class创建Dataset package com.njbdqn.mydataset import org.apache.spark.sql.SparkSession import org.apache.spark.sql.functions._ /** * 使用dataSet完成零售商店指标统计 * 1、使用RDD装在零售商店业务数据 * customers.csv、orders.csv、order_items.csv、products.csv * 2、定义样例类 * 将RDD转成DataSet */ object 阅读详情
val tt1 = Array(
("1", ( "t1", "2014-03-01 00:00:00.000+01") ),
("1", ( "t1", "2014-03-01 00:01:00.000+01") ),
("2", ( "t1", "2014-03-02 00:00:00.000+01") ),
("2", ( "t1", "2014-03-03 00:00:00.000+01") ),
("2", ( "t1", "2014-03-04 00:00:00.000+01") ),
("3", ( "t1", "2014-03-03 00:00:00.000+01") )
)

val tt1kv = sc.parallelize(tt1)

def comparePair(one:(String,String), two:(String,String)): (String,String) = {
  if (one._2.compareTo(two._2) > 0) one
  else two
}

tt1kv.reduceByKey(comparePair).collect.foreach(println)

val tt2 = Array(
("1", ( "t2", "2014-03-01 00:02:00.000+01") ),
("2", ( "t2", "2014-03-02 00:02:00.000+01") ),
("2", ( "t2", "2014-03-03 00:02:00.000+01") ),
("2", ( "t2", "2014-03-04 00:02:00.000+01") )
)

val tt2kv = sc.parallelize(tt2)

val un = tt1kv.reduceByKey(comparePair).union(tt2kv.reduceByKey(comparePair))

un.collect.foreach(println)
un.groupByKey.collect.foreach(println)


un.filter(kv => kv._2._1 == "t2").collect.foreach(println)
un.groupByKey.filter(kv => kv._2.toSeq.length < 2).collect.foreach(println)


def haveAllTypes ( events:Seq[(String,String)] ): Boolean = {
  if ( !events.filter(kv => kv._1 == "t1").isEmpty && !events.filter(kv => kv._1 == "t2").isEmpty ) {
    true
  } else {
    false
  }
}
un.groupByKey.filter( kv => haveAllTypes(kv._2.toSeq) ).collect.foreach(println)


def filterSLA ( events:Seq[(String,String)] ): Boolean = {
  val eventMap = events.toMap
  if ( (eventMap contains "t1") && (eventMap contains "t2") ) {
    val format = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSX")
    val ts1 = format.parse(eventMap("t1")).getTime
    val ts2 = format.parse(eventMap("t2")).getTime
    if (ts2 - ts1 < 120000)
      false
    else
      true
  } else {
    true
  }
}
un.groupByKey.filter( kv => filterSLA(kv._2.toSeq) ).collect.foreach(println)
Spark入门之六:SparkSQL实战 介绍 SparkSQL引入了一种新的RDD——SchemaRDD,SchemaRDD由行对象(Row)以及描述行对象中每列数据类型的Schema组成;SchemaRDD很象传统数据库中的表。SchemaRDD可以通过RDD、Parquet文件、JSON文件、或者通过使用hiveql查询hive数据来建立。SchemaRDD除了可以和RDD一样操作外,还可以通过registerTempTa 阅读详情

相关推荐

Spark简单数据分析---Spark学习笔记(2)

上次学习Spark还是两个月前的事情,期中好多事情耽搁了,现在开始正式地学习Spark的使用。前面所学习的Scala基本知识也能用上了,终于可以从简单了解过渡到应用和实现的阶段。 这次学习的内容跟进的是《Spark高技术据分析》一章,里面的内容感觉很灵活,不仅是从最简单的Spark对数据的处理开始,而且其中稍带的Scala知识提及,可以加深对Scala的印象,从而运用起来就更加能了解其

miaote的博客 4741

scala语言中case关键字的三种用途,以及在spark中的一种特殊用法

在scala中,case关键字有多种用途 可以用作模式匹配,例如 var arr = Array(1,2,3,4,5,6) arr.foreach(i => { case 1 => println("==1") case _ => println("!=1") }) 可以使用在类class前面声明为case class class之前添加case可以自动生成equal、hashcode、toString、copy方法和他的伴

vic_torsun的博客 7098

保研专业课复习别瞎卷!抓住408和数学重点,用真题反推高效复习路径

本文针对计算机专业保研学生,提出以真题为导向的408专业课和数学高效复习策略。通过构建真题知识图谱、分析题型与难度矩阵,帮助考生精准把握数据结构、操作系统等核心科目的高频考点,如树与图算法、TCP/IP协议栈等,并制定科学的时间分配方案,实现短期内的快速突破。

weixin_27966471的博客 402

一步步学spark之一scala函数式编程中case class3.4

一步步学spark之一scala函数式编程中case  class case class类与正常的class类的区别: case class定义时候一般都需要在类名之后直接加上参数,参数前面不加val或var都可以,不加 的情况下默认是 val 用case class就是传递消息或传递数据  scala在内部已经帮它实现了apply方法

Angel、骷髅博客 1216

别再死磕DH参数了!用MATLAB Robotics Toolbox + SOLIDWORKS搞定六轴机械臂仿真(附避坑指南)

本文详细介绍了如何利用MATLAB Robotics Toolbox和SOLIDWORKS进行六轴机械臂仿真,避免常见的DH参数错误和模型导出问题。通过实战指南和避坑技巧,帮助工程师实现从三维建模到运动学仿真的无缝衔接,提升仿真效率和准确性。

weixin_27066963的博客 395

台达PLC DIAdesigner-AX 编程笔记

1、登陆台达思图软件网站,选择Download,登陆注册好的账号,下载DIAInstaller,下载后安装(安装目录不要修改);

weixin_45823621的博客 6679

spark笔记之模式匹配和样例类

阶有一个十分强大的模式匹配机制,可以应用到很多场合:如开关语句,类型检查等并且阶还提供了样例类,对模式匹配进行了优化,可以快速进行匹配。 1.1。匹配字符串 [AppleScript] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 ...

qq_40208605的博客 2179

centos7 python3.12.1 报错 No module named _ssl,坑我几个小时

网上的教程很多,但几乎是无效的,跟着我这教程,可以完美解决。

Amio_的博客 1万+

C语言case关键字后面的值有什么要求?

case后面只能是整型或字符型的常量或常量表达式

SuGuolin的博客 1万+

多模态论文笔记——CogVLM和CogVLM2

本文详细介绍LoRA版本的多模态模型——CogVLM和CogVLM2。在SD3中使用其作为captioner基准模型的原因和优势。

haopinglianlian的博客 2205

Power domain 划分该如何下手

假如PD1比PD3更always on的话,我们只需要插入普通buffer即可,因为PD3 on,PD1也肯定是ON,PD1 off,PD3肯定时off,PD1能cover PD3的电源情况,因此使用普通buffer也可,但是处于省电角度,我们还是使用AO buffer;在我们做多power domain时,在切分power domain时,需要谨慎,稍有不慎,就会出现congestion以及timing问题,那问题来了,我们在切分power domain时有什么考究么,今天小编就和大家一起讨论讨论。

芯冰乐 207

case关键字在scala的作用

说到scala的强大,case关键字当然功不可没。它可以用作模式匹配 eg:import scala.language.postfixOps object fun2{ def main(args: Array[String]): Unit = { val model: Seq[(String, Int)] = ("Jack"->19)::("Bucy"->20)::("Bob"->22)

阿生 6349

【Agent实战】Anthropic Skills、MCP与LangGraph的工程实践

随着大语言模型(LLM)应用从简单的Chatbot向自主智能体(Autonomous Agents)演进,如何管理复杂的任务上下文、标准化的工具调用以及确定性的业务流程,成为了系统设计的核心挑战。Anthropic 推出的 Skills 规范,结合 Model Context Protocol (MCP) 与 Function Calling,为构建模块化、可扩展的 Agent 提供了全新的范式。

kakaZhui的博客 584

Spark Session Case语句实战

CASE语句是SQL中用于在查询中进行条件判断和返回不同值的语句。CASE:表示开始CASE语句。WHEN:用于指定条件判断的部分,可以有多个WHEN来表示不同的条件。THEN:当条件满足时返回的值。ELSE:如果所有的WHEN条件都不满足,则返回ELSE后面指定的值。END:表示CASE语句的结束。在Spark中,使用CASE WHEN语句可以在DataFrame或Dataset的selectExpr方法中进行条件判断和值返回,从而实现数据的转换和处理。

yanzhenjinghong的博客 294

MCAL中Dsadc的配置

DSADC模块作为一个专用的模块,主要应用在编码器软解码,功能强大而复杂,这里介绍了Dsadc的mcal配置和详细描述,让你全面学习和理解这个模块功能和应用。

dhyw12399999的博客 788

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Run Test Case on Spark

本文讲述了如何运行Spark的测试用例

OopsOutOfMemory盛利的博客 5465

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

spark case关键字详解

spark中case关键字,很有用,很强大,case语法与java中的switch语法类似,但比switch更强大。 一、case做模式匹配 1.正则匹配 val Pattern="(a.*)".r// val v1="spark"; val r=v1 match { case Pattern(v1)=&gt; "start" case "1"=&...

a627082796的博客 5949

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Spark之CASE...WHEN...THEN...的两种实现方式

在Spark中,dataframe是常用的数据格式,类似于数据库中的表。本文将介绍如何在dataframe中实现CASE…WHEN…THEN的两种方法。 一种是将dataframe看成数据库中的表,即使用createOrReplaceTempView()函数,之后利用数据库的CASE…WHTN…THEN进行操作。另一种方法是,利用pyspark.sql.functions的when().othe...

liuxiangke0210的专栏 5857

spark系列case class学习

scala> case class Message(sender: String, recipient: String, body: String) defined class Messagescala> val message1 = Message("guillaume@quebec.ca", "jorge@catalonia.es", "Ça va ?") message1: Message =

dataastron的博客 3683

spark 实战笔记case3

val mapper = sc.textFile("/user/hive/warehouse/sla.db/e*_30days/").map(line => line.split("\073")).map(line => ( if (line(0)=="598017" || line(0)=="614420" || line(0)=="614421") line(5) else line(4), (

mllhxn的专栏 1028

Spark SQL实战:使用 case class 创建DataFrame

1.需求: 使用 case class 创建DataFrame 2.数据源: student.txt 1 tom 15 2 lucy 20 3 mike 18 3.编写代码 (1)添加依赖: pom.xml <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.1

Movle 1445

spark 实战笔记case4

package de.zalando.sla_spark_sqlimport org.apache.spark.SparkContext import org.apache.spark.SparkContext._ import org.apache.spark.SparkConfobject SLA_parquetSQL { def main(args: Array[String]) {

mllhxn的专栏 623

spark 实战笔记case2

val t1 = sc.textFile("/tmp/db_case1/order_created/*").map(line => line.split("\t")) val t2 = sc.textFile("/tmp/db_case1/order_picked/*").map(line => line.split("\t")) val t3 = sc.textFile("/tmp/db_case

mllhxn的专栏 530

Spark入门实战系列--6.SparkSQL(下)--Spark实战应用

SparkSQL引入了一种新的RDD——SchemaRDD,SchemaRDD由行对象(Row)以及描述行对象中每列数据类型的Schema组成;SchemaRDD很象传统数据库中的表。SchemaRDD可以通过RDD、Parquet文件、JSON文件、或者通过使用hiveql查询hive数据来建立。SchemaRDD除了可以和RDD一样操作外,还可以通过registerTempTable注册成临时表,然后通过SQL语

yirenboy的专栏 4336

Build Spark1.3.1 with CDH HADOOP

Build Spark1.3.1 with CDH HADOOP1、找到CDH的版本[root@web02 spark1.3]# hadoop version Hadoop 2.0.0-cdh4.7.0 Subversion file:///var/lib/jenkins/workspace/CDH4.7.0-Packaging-Hadoop/build/cdh4/hadoop/2.0.0-cdh4

OopsOutOfMemory盛利的博客 2831

《深入理解Spark》之使用scala开发spark时,map+case结构使用技巧

scala开发Spark程序时使用map +case结构的一点小技巧   people.txt文本如下 lyzx1,19 lyzx2,20 lyzx3,21 lyzx4,22 lyzx5,23 lyzx6,24 lyzx7,25 lyzx7,25,哈哈 托塔天王 package com.lyzx.start import org.apache.spark.{SparkConf, Sp...

凌夜知惜 5544
上一篇: cdh PostgreSQL
下一篇: spark 实战笔记case2
mllhxn
博客等级 码龄14年 116粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值