spark-shell学习笔记

1.
val lines=sc.textFile("hdfs://") ==加载进来成为RDD Resilient distributed dataset 弹性数据集
val errors=lines.filter(_.startsWith("ERROR")) ##transformation
val errors.persist() ##缓存RDD
val mysql_error=errors.filter(_.contains("mysql")).count ##action
val http_error=errors.filter(_.contains("http")).count ##action

2.
map是每一行数据返回一个数组,flatmap是所有的数据返回一个数组

val rdd=sc.parallelize(List(2,4,6,7,8)) --初始化rdd
val rdd1=rdd.map(2*_) --每个数乘2
rdd1.collect --显示rdd1
内行要这么写 val rdd_1=sc.parallelize(List(3,4,6,8,9)).map(3*_).filter(_>20).collect
# val rdd_count=rdd_1.flatMap(_.split(‘,‘)).map((_,1)).reduceByKey(_+_)

3.val s2=sc.textFile("/luo/s1.txt").flatMap(line=>line.split(",")).map(word=>(word,1)).reduceByKey(_+_) --路径是hdfs路径
s2.saveAsTextFile("/luo/result")

4.val s1=sc.textFile("/luo/s1.txt")
val rdd_count1=s1.flatMap(_.split(‘,‘)).map((_,1)).reduceByKey(_+_)
val rdd_count2= rdd_count1.groupByKey --按key进行分组
r1.count --有多少数据
val rdd_count3=s1.flatMap(_.split(‘,‘)).map((_,1)).reduceByKey(_+_).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1)).saveAsTextFile("/luo/result1")

5.val rd1=sc.parallelize(List((‘a‘,1),(‘a‘,2))),val rd2=sc.parallelize(List((‘b‘,1),(‘b‘,2)))
val rd3=rd1 union rd2 --结果:Array[(Char, Int)] = Array((a,1), (a,2), (b,1), (b,2))
rd1.lookup(‘a‘)

6 val r1=sc.parallelize(List((‘a‘,3),(‘a‘,5),(‘b‘,6),(‘b‘,9))) ,val r2=sc.parallelize(List((‘a‘,6),(‘a‘,12),(‘b‘,23),(‘b‘,34)))
val r3=r1 join r2 结果为:Array[(Char, (Int, Int))] = Array((b,(6,23)), (b,(6,34)), (b,(9,23)), (b,(9,34)), (a,(3,6)), (a,(3,12)), (a,(5,6)), (a,(5,12))) 笛卡尔集
r1.lookup(‘a‘)

7 val sum=sc.parallelize(List(1,2,4,5,65))
val sum1=sum.reduce(_+_) --求和

8.data.map(_.split(‘\t‘)(0)).filter(_<"201202012").count --(0) 表示取第一个元素
data.filter(_.split(‘\t‘).length==3).map(_.split(‘\t‘)(1)).map(_,1).reduceByKey(_+_).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1)).saveAsTextFile("/luo") ---reduce之后数据就变成了元组 38:33

9. val rdd=sc.parallelize(List(2,4,6,7,8))
val evenfiy=(x:Int)=>if(x%2==0) x else None

10.spark-submit --master spark://127.0.0.1:7077 --name WordCountByscala --class spark.wordcount --executor-memory 1G --total-executor-cores 2 /home/luozt/spark/spark08241.jar /home/luozt/spark/README.md /home/luozt/spark_data
val tt=rdd.map(evenfiy)
10.val list="hello.world".toCharArray
val list1=1 to 10 toList
list.zip(list1)
list.zipAll(list1,‘q‘,2)
list.zipWithIndex

sparksql
val hiveContext=new org.apache.spark.sql.hive.HiveContext(sc)
import hiveContext._
hiveContext.sql("show tables").take(10) //取前十个表看看

1.val sqlContext=new org.apache.spark.sql.SQLContext(sc)
import sqlContext._
case class person(name:string,age Int)
val people=data.map(_.split(‘,‘)).map(p==>person(p(0),p(1).toInt))
people.saveAsParquetFile("/luo/luo.parquet") --写
val par=hiveContext.parquetFile("/luo/luo.parquet") --读
par.registerAsTable("par")
val ps=sql("select name from par where age>20")
2.case class word(wid:Int,aid:Int,Times:int)
val wo=sc.textFile("/luo/aa.txt").map(_.split(‘\t‘)).filter(_.length==3).map(w=>word(w(0).toInt,w(1).toInt,w(2).toInt)
wo.registerAsTable("wor")
sql("select * from wor");
3.DSL
‘wid 代表wid这一列
如:val rs=word.where(‘Times>50).where(‘wid>2).select(‘aid).limit(10)
4.spark对hive的操作
val hiveContext=new org.apache.spark.sql.hive.HiveContext(sc)
import hiveContext._
hql("show tables")
hql("select * from words where times>50 limit 10").collect

时间: 2024-11-29 02:46:44

spark-shell学习笔记的相关文章

Shell学习笔记——第三章

第三章 /etc/passwd 文件包含一个所有系统用户账户组成的列表,以及一些关于每个用户的基本信息. 例rich:x:501:Rich Blum:/home/rich:/bin/bash 每个条目都有7个数据字段,例使用冒号分隔.系统使用这些字段中的数据向用户分配具体的特性.这些字段分别有 用户名:用户密码(如果密码存储在其他文件中,则为占位符):用户的系统用户ID编号:用户的系统组的ID编号:用户的全名:用户默认的主目录:用户的默认Shell目录: cd 命令 略过 列表命令(ls) 参数

SHELL学习笔记----IF条件判断,判断条件

SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here       elif list then           do another thing here       else          do something else here fi  EX1: #!/bin/bash if [ `uname -m` == "x86_64" ]

Linux Shell 学习笔记

2.return与exit区别 return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用. exit(0)表示正常退出执行程序,如果加其它的数值:1,2,....可以表示由于不同的错误原因而退出 . main函数中exit(0)等价于return 0. 1. Linux下一条命令或一个进程执行完成会返回一个一个状态码. 0 === 成功执行 非0 === 执行过程

Spark GraphX学习笔记

概述 GraphX是 Spark中用于图(如Web-Graphs and Social Networks)和图并行计算(如 PageRank and Collaborative Filtering)的API,可以认为是GraphLab(C++)和Pregel(C++)在Spark(Scala)上的重写及优化,跟其他分布式 图计算框架相比,GraphX最大的贡献是,在Spark之上提供一站式数据解决方案,可以方便且高效地完成图计算的一整套流水作业. Graphx是Spark生态中的非常重要的组件,

shell学习笔记

一.shell变量 1.变量名与赋值符号间不能有空格. 2.首个字符必须为字母a~z或A~Z. 3.使用一个已定义的变量,在变量名前加'$',如: myName=“firefly” echo $myname echo ${myName} 加花括号帮助识别变量的边界,建议加上s. 4.删除变量:unset varName,不能删除只读变量. 5.三种变量:局部变量.环境变量.shell变量 二.shell替换 1.变量替换 echo -e "hello, Emma!\n" 若无-e,则不

[Bash Shell] Shell学习笔记

1. Shell简介 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序.建立文件并以并行的方式协调各个程序的运行.因此,对于用户来说,s

shell学习笔记之六(测试和判断)

测试和判断 测试 利用命令执行后的$?来判断命令是否执行正常.$?==0 ? 正常:错误 测试结构: 1.test expression 2.[ expression ] #注意表达式两侧的空格 方式2增加了代码的可读性,且更容易与if,case,while这些条件判断的关键字联用. 文件测试: 1.test file_operator FILE 2.[ file_operator FILE ] 例: test -e /var/log/message echo $? #文件存在返回0,不存在返回

shell学习笔记---抄录

SHELL笔记 1.查看一个文件或目录的大小 ls   du 2.查看状态     stat 文件名 3.系统本身所有,通常为大写字母 4.系统变量通过 set 或 declare 指令进行查看 5.UDV 变量(user defined variable) 用户创建和维护,建议大写(为什么?) 原因:避免冲突与混淆,因为 Linux 系统中命令全部采用小写的方式 6.Shell 中所有变量定义都为字符串. 变量区分大小写,如:foo 和 Foo 是两个不同的变量 变量必须以字母或下划线开头,不

CentOS 7 之Shell学习笔记

脚本是个永恒的话题,以前Dos下面也有Shell编程这一说的,比如说BAT文件有人写的好的话,也是瞬间速度变高大上.Linux下面这个应该更占比重了.我看到园子里有位园友做了一个Linux Shell脚本攻略 读书笔记,笔记概括总结的太好了,值得逐一实践. 为学Linux ,我读过的书藉, 这篇也是个不错的总结,前人的经验真是宝贵,分享真是一种态度.

shell 学习笔记整理(二)

特殊字符:    #! 开始的标志    ;  多个命令一起连用的分隔符    [[email protected] log]# echo a;echo b;echo c    a    b    c    .  多种作用:        1. 相当与 source 命令        2. 作为文件名称的一部分(隐藏文件名)  (使用ls -a  可以查看linux下面的隐藏文件)        3.如果作为目录名的话,一个单独的点代表当前工作目录,两个点代表上一级目录.