spark定制之五:使用说明,spark定制之五


背景

spark-shell是一个scala编程解释执行环境,可以通过编程的方式处理逻辑复杂的计算,但对于简单的类似sql的数据处理,比如分组求和,sql为”select g,count(1) from sometable group by g”,需要写的程序是:

val hive = neworg.apache.spark.sql.hive.HiveContext(sc)

import hive._

val rdd = hql(“selectg,count(1) from sometable group by g”)

rdd.collect

看起来繁琐,对于只注重业务数据的人来说,附加了过多的spark工具的内容。

让提交sql命令easy

用spark-shell的-i参数设定启动脚本,可以省去hive变量定义和import两句。

用面向对象编程把后两句可以合并变为hql(“select g,count(1) from sometable group by g”).collect。

用scala隐形转换再简单为“selectg,count(1) from sometable group by g”.hqlgo。

用scala省略括号特性,可以写成“selectg,count(1) from sometable group by g” hqlgo。

简化后的语句:“select g,count(1) from sometable group by g” hqlgo

如果分多行写可以写成:

“””

selectg,count(1)

from sometable

group by g

“”” hqlgo

让结果保存easy

查询结果保存需要写的程序:

val rdd = hql(“selectg,count(1) from sometable group by g”)

rdd.saveAsTextFile(“hdfs:/somedir”)

同上面的sql提交类似,简化后的语句:“select g,count(1) from sometable group by g” saveto “hdfs:/somedir”

多行形式:

“””

selectg,count(1)

from sometable

group by g”””saveto “hdfs:/somedir”

注:

1)多行写时saveto与前面不能再分行,后面的路径也不能再分行

2)如果保存到本地文件,文件应包含扩展名后缀

3)原spark实现的输出格式有问题,hive不能正确解析数据结构,新改的定制版已解决

让读取文件创建内存表easy

对hdfs中的数据进行sql,如果想在hive中创建表则用”create externaltable ...” hqlgo即可;如果只创建内存表做数据处理,需要写的程序:

val rdd =sc.textFile(“hdfs:/somedir”)

case class SomeClass(name:String,age:Int,weight:Double)

val schemardd = rdd.map(_.split("\t")).map(t=>SomeClass (t(0),t(1),t(2)))

hive.registerRDDAsTable(schemardd,"sometable")

hql(“selectg,count(1) from sometable group by g”).collect

简化后的语句:

"create table sometable (name string,age int,weightdouble)" from "hdfs:/somedir"

“selectg,count(1) from sometable group by g” hqlgo

多行形式:

“””

create tablesometable (

name string,

age int,

weight double)

“”” from"hdfs:/somedir"

“selectg,count(1) from sometable group by g” hqlgo

注:

1)”create table ”需严格按此写,create后、table后必须有一个空格

2)输出路径为了避免覆盖大的目录,全路径字符长度必须大于等于24个字符

结果检查

计算结果可能是数据表、也可能输出到文件。

数据表检查:”sometable” isok

文件检查:”somefile.txt” isok

“hdfs:/somedir” isok

判断的标准是文件不为空,长度大小大于0;路径不为空,下面存在长度大于的文件;数据表记录条数大于0。

注:

1)文件应包含扩展名后缀,在输入的字符串中如果包含“.”、“/”则认为是文件或目录,不包含认为是数据表

2)如果想把查询结果保存到内存用val data = "select * from testperson" hqlresult,查看内存中查询的结果用do show data

定制spark的启动

/sysdir/spark-1.0.0/bin/myspark

输入help可以得到帮助。

 


定制北京五日游路线

D1 到达后游览世界上最的大皇家祭天建筑群天坛,整修完的【新前门大街】游览,品位古都新风貌、寻访中华老字号:全聚德、东来顺、内联升等,感受老牌楼、有轨电车、老字号店铺重现老北京时的风貌,住酒店
D2 早餐后乘车外观被誉为北京“湖上仙阁”的国家大剧院,她造型新颖、前卫,构思独特。后游览【天安门广场】(游览约40分钟),它是世界上最大的广场,中央立有人民英雄纪念碑,于广场内集体拍照,记录灿烂笑容,后参观【毛主席纪念堂】(视其开放时间而定)继而游览【故宫】(游览约2小时),故宫又名“紫禁城”,是世界上最大、保存最完整的宫殿群。【恭王府】自费游览世界最大的四合院,大贪官和坤的私人府邸。观镇京三宝之一福字(游览时间约2个小时)参观明清两朝皇家太医院北京百年老店同仁堂晚上到逛王府井大街 品尝东华门小吃。住酒店
D3 早餐后乘车前往闻名世界的万里长城(乘车约1小时30分钟),一览祖国的大好河山。登上【八达岭长城】(游览约1.5小时),亲身当一回“好汉”,感受天下雄关的宏大气势。【明皇宫】,解读明代秘史,身临其境回到明朝。后亲临【奥林匹克公园】,参与丰富的奥运大众游览活动,进入鸟巢或水立方参观奥林匹克公园/鸟巢/水立方的开放视国家政策而定,总共游览时间约2小时,如遇不开放,改为外观) 晚饭后入住酒店。
D4 早餐后参观中国现存古代园林建筑中规模最大、保存最完整的皇家园林--【颐和园】(游览约2小时)。全园主要由万寿山和昆明湖组成,山清水秀,气象万千。后外观鼓楼,【圆明园】(门票自理60游览约1.5小时)万园之首,感受历史的痕迹,爱国之情。车游中央电视台 中华世纪坛 中央电视发射塔。 用中餐后 返回温馨的家

景点名称 旺季门市价 淡季门市价
人民大会堂 30 30
天安门城楼 15 15
故宫博物院 60 40
北海公园 10 10
八达岭长城 45 40
居庸关长城 40 35
水关长城 26 18
定陵博物馆 60 45
长陵博物馆 45 35
颐和园 30 30
天坛公园(通票) 35 30
天坛公园(大门) 15 10
圆明园(通票) 35 10
圆明园(大门) 35 10
香山公园 10 5
北京动物园 15 10
中华世纪坛 30 30
恭王府花园 70 70
世界公园 65 40
北京海洋馆 100 100
富国海底世界 75 75
太平洋海底世界 75 75

这是3天半的行程和主要景点门票!希望对你有帮助!
 

手机怎定制排列五开奖信息

体彩排列五
将在开奖信息公布的第一时间将开奖结果发送到您的手机上!
移动用户发送35到35008,定制彩票即时通业务,为您提供排列五的开奖信息。资费:8.0元/月
 

相关内容