哔哔大数据

概述spark-submit可以提交任务到spark集群执行,也可以提交到hadoop的yarn集群执行。最简单提交命令本地模式提交spark-submit\--class类名jar包参数不同搭建的提交方式主要模板spark-submit\--class主类\--master提交地址\--deploy-mode提交方式\其他参数\运行主程序程序参数自生调度器管理俗称的集群模式,一个master,多个worker,这时是Spark自身的资源调度器管理。spark-submit\--class主类\--masterspark://master:6066\--deploy-modecluster\其他参数\运行主程序程序参数提交到Yarn管理spark-submit\--class主类\--masterspark://master:6066\--deploy-modeyarn\其他参数\运行主程序程序参数参数详解--class:执行主类,Python不需要--master:提交的地址:spark://master:6066、yarn、local--deploy-mode:默认cliebt,cluster--name:程序名--driver-memory:driver内存,默认为1G--driver-cores:driverCPU数,默认1核。--executor-memory:每个executor的内存,默认是1G--executor-core:每个executor的核数。在yarn或者standalone下使用--total-executor-cores:所有executor总共的核数。仅仅在mesos或者standalone下使用--num-executors:启动的executor数量。默认为2。在yarn下使用Spark集群例子如果有些内存核心不指定,就不能很好的利用集群的算力spark-submit\--masterspark://node1:6066\--deploy-modecluster\--driver-memory14g\--driver-cores8\--executor-memory14g\--executor-cores4\--total-executor-cores24\--classtwo/root/jar/bigdataboy.jarobs://bigdata/bigdataboyYarn提交例子spark-submit\--masteryarn\--deploy-modecluster\--driver-cores5\--driver-memory10g\--executor-memory25g\--executor-cores4\--class类名Jar包参数全部参数--master提交地址spark://host:port,mesos://host:port,yarn,k8s://https://host:port,默认:local[*]--deploy-mode提交模式默认:client(单机),cluster(集群)--class程序主类Java&Scala程序--name程序名字application的名字--jarsJARS程序使用的Jar包路径,用逗号分割--packagesmaven的Jar包名称需要与--repositories一起使用--repositories需要与--package一使用(--packagesmysql:mysql-connector-java:5.1.27--repositorieshttp://maven.aliyun.com/nexus/content/groups/public/)--exclude-packages为了避免冲突而指定不包含的package--py-filesPython程序的路径支持者.zip,.egg,or.py压缩文件或者文件--filesFILESComma-separatedlistoffilestobeplacedintheworkingdirectoryofeachexecutor.FilepathsofthesefilesinexecutorscanbeaccessedviaSparkFiles.get(fileName).--confPROP=VALUE额外的配置--properties-fileFILE加载配置路径,默认conf/spark-defaults.conf.--driver-memoryMEMMemoryfordriver(e.g.1000M,2G)(Default:1024M).--driver-java-options传递给driver的额外Java选项。--driver-library-path传递给driver的额外库路径项。--driver-class-pathdriver的类路径,用--jars添加的jar包会自动包含在类路径里--executor-memoryMEMMemoryperexecutor(e.g.1000M,2G)(Default:1G).--help,-h显示此帮助消息并退出。--verbose,-v打印额外的调试输出。--version,打印当前Spark的版本仅支持Cluster部署模式:--driver-coresNUMdriver使用的核心数,仅在集群模式下使用(Default:1).仅支持standalone、Mesos的集群部署模式:--supervise如果给定,则在失败时重新启动驱动程序。--killSUBMISSION_ID如果给定,则杀死指定的驱动程序。--statusSUBMISSION_ID如果给定,请求指定的驱动程序的状态。仅支持standaloneandMesos部署模式:--total-executor-coresNUM所有executors的核心总数。仅支持standaloneandYARN部署模式:--executor-coresNUM每个executors的核心数。(Default:1inYARNmode,或者standalone模式worker的所有核数。)仅支持YARN部署模式:--queueQUEUE_NAMEYarn提交的对列名称(Default:"default").--num-executorsNUMexecutors启动的数量(Default:2).--archivesARCHIVESCommaseparatedlistofarchivestobeextractedintotheworkingdirectoryofeachexecutor.--principalPRINCIPALPrincipaltobeusedtologintoKDC,whilerunningonsecureHDFS.--keytabKEYTABThefullpathtothefilethatcontainsthekeytabfortheprincipalspecifiedabove.ThiskeytabwillbecopiedtothenoderunningtheApplicationMasterviatheSecureDistributedCache,forrenewingtheloginticketsandthedelegationtokensperiodically.

哔哔大数据

空字段赋值函数说明为了给字段中为null的值赋予一个新值。nal(字段1,字段2|所赋值)有两种用法用法一:只传入一个字段#原数据hive>select*fromstudentinof;OK1bidataboy10002BoyNULL3AaNULL4Boy2004Tab1000Timetaken:1.13seconds,Fetched:5row(s)把为null的赋值成0hive>selectname,nvl(money,0)fromstudentinof;OKbidataboy1000Boy0Aa0Boy200Tab1000Timetaken:0.383seconds,Fetched:5row(s)用法二:传入两个字段作用:当字段1为null时,字段2补充,当字段2的值为null,赋予值补充。#原数据hive>select*fromstudentinof;OK1bidataboy10002BoyNULL3AaNULL4Boy2005Tab10006NULL2000Timetaken:0.333seconds,Fetched:6row(s)#传入两个字段:当money为null时,返回name的值。hive>selectname,nvl(money,name)fromstudentinof;OKbidataboy1000BoyBoyAaAaBoy200Tab1000NULL2000Timetaken:1.75seconds,Fetched:6row(s)case匹配这个case匹配跟MySQL里的是差不多的。case变量或者字段when待匹配值then值或表达式when待匹配值then值或表达式else未匹配的处理end使用统计不同部门的男女数部门|男|女数据hive>select*fromemp;OK小黄A女小蓝B女小粉A女小红B男小黑A男小紫B男Timetaken:1.111seconds,Fetched:6row(s)HQL查询语句selectdept_id,sum(casesexwhen"男"then1else0end)male_count,sum(casesexwhen"女"then1else0end)female_countfromempgroupbydept_id;结果TotalMapReduceCPUTimeSpent:11seconds90msecOKA12B21Timetaken:343.221seconds,Fetched:2row(s)行转列相关函数concat(col,col,...):字符串的拼接,跟MySQL里面的一样。concat_ws(separator,str1,str2,...):这个是特殊的拼接,第一个参数是分隔符,也可以传入数组,返回一个能指定分隔符的字符串。COLLECT_SET(col):函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。使用原数据hive>select*fromemp;OK小黄A女小蓝B女小粉A女小红B男小黑A男小紫B男Timetaken:1.048seconds,Fetched:6row(s)HQL语句selectt.ds,concat_ws("|",collect_set(t.n))from(selectconcat_ws("|",dept_id,sex)ds,namenfromemp)tgroupbyt.ds;结果TotalMapReduceCPUTimeSpent:8seconds40msecOKA|女小黄|小粉A|男小黑B|女小蓝B|男小红|小紫Timetaken:54.446seconds,Fetched:4row(s)#可以把最外层的select里的concat_ws()函数去掉,结果变成如下。TotalMapReduceCPUTimeSpent:7seconds500msecOKA|女["小黄","小粉"]A|男["小黑"]B|女["小蓝"]B|男["小红","小紫"]Timetaken:71.575seconds,Fetched:4row(s)列转行效果实例#转换之前movie|category|------------------------------------《疑犯追踪》|悬疑,动作,科幻,剧情|#转换之后movie|category|------------------------------------《疑犯追踪》|悬疑|《疑犯追踪》|动作|《疑犯追踪》|科幻|《疑犯追踪》|剧情|函数说明:explode(col):将hive一列中复杂的array或者map结构拆分成多行。lateralview:用法:lateralviewudtf(expression)tablealiasascolumnalias解释:用于和split,explode等UDTF一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。使用原数据《Lietome》悬疑,警匪,动作,心理,剧情《战狼2》战争,动作,灾难创表createtablemovie_info(moviestring,categoryarray<string>)rowformatdelimitedfieldsterminatedby"\t"collectionitemsterminatedby",";查询语句selectmovie,category_namefrommovie_infolateralviewexplode(category)table_tmpascategory_name;结果不跑MROK《Lietome》悬疑《Lietome》警匪《Lietome》动作《Lietome》心理《Lietome》剧情《战狼2》战争《战狼2》动作《战狼2》灾难Timetaken:0.438seconds,Fetched:8row(s)

2020-3-10 32 0
哔哔大数据

概述SQL字段的约束是保证字段内容符合要求的一种方法,有六大约束,MySQL只支持其中五种,还有一种语法不报错,但没有实际的作用。六大约束primarykey(主键):唯一,不能为空。notnull(非空):不能为空。default(默认值):字段默认值。unique(唯一):唯一,能为空。foreignkey(外键):为了使两张表的数据更好的关联。check(内容检查MySQL不支持):检查内容是否要求。使用本质是两种不同的写法,效果没有区别列级约束createtablestuinfo.sinfo(idintprimarykey,#主键namevarchar(20)notnull,#不能为空sexenum("男","女")default"女",#检查&默认值stuidintunique,#唯一值skilltypeintreferencesstype(id)#外键)#类型表用以外键关联createtablestuinfo.stype(idint,skillvarchar(255)notnull)表级约束在表级约束中,不能设置notnull、default关键字constraint是可以省略的createtablestuinfo.sinfo(idint,namevarchar(20)notnull,sexenum("男","女"),stuidint,skilltypeint,#constraint别名约束constraintid_pkprimarykey(id),#主键constraintsec_ckcheck(sexin("男","女")),#检查点constraintstuid_ununique(stuid),#唯一键constraintst_fkforeignkey(skilltype)referencesstype(id)#外键)#类型表createtablestuinfo.stype(idint,skillvarchar(255)notnull)主键和唯一关键字唯一性是否允许为空一个表中是否能有多个是否允许组合primarykey√××√(不推荐)unique√√√√(不推荐)设置字段约束组合需要表级约束。createtablestuinfo.sinfo(idint,namevarchar(20)notnull,sexenum("男","女"),/*组合主键两个字段组成唯一性*/id_pkprimarykey(id,name),)字段约束的修改添加字段时加上约束altertable表名modifycolumn字段名约束;修改约束当新旧字段名一样时,就是修改类型、约束。altertable表名changecolumn旧字段名新字段名约束;

2020-3-8 25 0
2020-3-7 32 0
哔哔大数据

数值分为两类整数小数整数类型概述SQL的整数类型有5种有符号就是正负数都可以存储,无符号只能存正数,需要unsigned修饰。Tinyint:占位1字节有符号:-128~127无符号:0~255Smallint:占位2字节有符号:-32768~32767无符号:0~65535Mediumint:占位3字节有符号:-8388608~8388607无符号:0~1677215Int:占位4字节有符号:-2147483648~2147483647无符号:0~4294967295Bigint:占位8字节有符号:-9223372036854775808~9223372036854775807无符号:0~9223372036854775807*2+1使用只用int举个例子,其他也是同理。创建表createtablet(t1int,#默认有符号t2intunsigned,#无符号不能插入负数t3int(4),/*数值代表查询结果显示的长度(不是范围,范围是intbigdata使用什么类型确定的),这样单独写是看不出效果的。*/t4int(4)unsignedzerofill/*1.需要转换成无符号添加不足长度0填充(zerofill)来显示。2.如果使用某些软件查询,查询结果可能会把填充的0去掉。*/)插入数据insertintotvalues(-1,1,1,1)查询有填充的0。mysql>select*fromt;+------+------+------+------+|t1|t2|t3|t4|+------+------+------+------+|-1|1|1|0001|+------+------+------+------+1rowinset(0.00sec)小数类型概述SQL的小数类型可以分为两大类小数型,常用于计算,浮点的运算在精度上要求不高(了解)。float(M,D):占有4字节范围:±1.75494351E-38~±3.402823466E+38double(M,D):占有8字节范围:±2.2250738585072014E-308~±1.7976931348623157E+308定点型,常用于货币的计算dec(M,D)是decimal(M,D)的缩写。dec(M,D):占有M+2个字节范围:最大取值范围与double相同,给定dec的有效取值范围由M和D决定特点M&D详解M&D的作用M:整数位数+DD:小数的位数M&D都是可以省略的小数类型省略,就不受位数限制定点数省略,将会默认dec(10,0)使用创建表createtablenum.f(f1float,#不带参数f2float(5,2),#带参数,超过范围会报错f3dec,#不带参数默认dec(10,0)f4dec(5,4)#达不到5长度,小数后0填充)查看表的结构关注表字段的Type。mysql>descf;+-------+---------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+-------+---------------+------+-----+---------+-------+|f1|float|YES||NULL|||f2|float(5,2)|YES||NULL|||f3|decimal(10,0)|YES||NULL|||f4|decimal(5,4)|YES||NULL||+-------+---------------+------+-----+---------+-------+4rowsinset(0.01sec)插入数据insertintofvalues(-1,1.56,1,1.56)查看结果dec类型填充的0,在某些软件查询会被过滤。mysql>select*fromf;+------+------+------+--------+|f1|f2|f3|f4|+------+------+------+--------+|-1|1.56|-1|1.5600|+------+------+------+--------+2rowsinset(0.00sec)

2020-3-7 24 0
2020-3-6 23 0
2020-3-6 27 0
2020-3-6 30 0