资源描述
大数据实践大数据应用人才培养系列教材第六章Spark SQL6.1 Spark SQL简介6.3 使用。a tafra m 结构化数据 习题 6.1 Spark SQL简介第六章Spark SQL Spark的结构化数据处理模块提供分布式SQL查询引擎提供处理结构化数据的编程接口 DataFrame6.1 Spark SQL简介第六章Spark SQLSpark支持的结构化数据源6.1 Spark SQL简介第六章Spark SQL分布式SQL引擎的使用场景(1)JDBC/ODBC(2)命令行6.1 Spark SQL简介第六章Spark SQLDataFram e编程接口的使用Java/Scala/Python/R数据 6.1 Spark SQL简介第六章Spark SQL函数HDFS、Hive、HBase、Parquet等6.1 Spark SQL简介第六章Spark SQLSpark SQL架构6.1 Spark SQL简介第六章Spark SQLSpark SQL原理-Catalyst优化器Catalyst优化器大数据应用人才培养系列教材第六章Spark SQL6.1 Spark SQL简介6.2 分布式SQL引擎6.3 使用Data Frame AP纱理结构化数据习题)6.2分布式SQL引擎第六章Spark SQLSpark SQL环境酉己置在第五章Spark集群中增加MySQL元数据库和Thrift JDBC/ODBC Server机器名Spark角色Hadoop角色IP地址cloudlMasterNameNodeSecondaryNameNode ResourceManager192.168.100.10cloud2SlaveMySQL元数据库DataNodeNodeManager192.168.100.11cloud3SlaveThrift JDBC/ODBCServerDataNodeNodeManager192.168.100.126.2分布式SQL引擎第六章Spark SQL MySQL元数据库搭建(1)准备MySQL数据库(2)创建数据库用户sparksql(3)创建元数据库hiveMetastore MySQL-connector 的酉己置(1)Ti!Gmysql-connector-java-5.1.41-bin.jar(2)酉己置conf/spark-env.sh(3)配置hiverite.xml6.2分布式SQL引擎第六章Spark SQL使用Spark SQL CLI(1)启动Spark SQL CLIcd-/spark-2.1.0-bin-hadoop2.7,/bin/spark-sql17/08/05 01:27:23:Created HDFS directory:/tmp/hive/dta dmin/2c89bf04-9ee7-4acc-a254-5cbe5bcla57917/08/05 01:27:24:Created local directory:/tmp/dtadmin/2c89bf04-9ee7-4acc-a254-5cbe5bcla57917/08/05 01:27:24:Created HDFS directory:/tmp/hive/dta dmin/2c89bf04-9ee7-4acc-a254-5cbe5bcla579/_tmp_space,db 17/08/05 01:27:24:Warehouse location for Hive client(v ersion 1.2.1)is hdfs:/cloudl:9000/hive/warehouse spark-sql6.2分布式SQL引擎第六章Spark SQL使用Spark SQL CLI(2)使用SQL操作数据show databases use mytestdb常用数据操作SQL创建数据库create database mytestdb查看数据库 指定当前数据库 创建表create table test_tbl(id int,name string,value int)查看表定义 列出所有表 插入数据 查询数据 删除表 删除数据库desc test_tbl show tablesinsert into table test_tbl values(0zbluez10)select*from test tbl where value15drop table test_tbldrop database mytestdb6.2分布式SQL引擎第六章Spark SQL Thrift JDBC/ODBC Server的搭建与测试(1)启动Thrift JDBC/ODBC Server,/s b in/sta rt-thriftserver.sh查看日志,检查是否启动成功:17/08/05 02:38:10 INFO service.ZkbstractService:Service:T hriftBinaryCLIService is started.17/08/05 02:38:10 INFO service.ZkbstractService:Service:H iveServer2 is started.17/08/05 02:38:10 INFO thriftserver.HiveThriftServer2:Hi veThriftServer2 started使用netstat命令查看thrift server监听的端口号:dtadmincloud3 spark-2.1.0-bin-hadoop2.7$netstat-ntap|grep 7588(Not all processes could be identified,non-owned process infowill not be shown,you would have to be root to see it all.)tcp6 0 0 192.168.100.12:45800 192.168.100.11:3306 ESTABLISHED 7588/javatcp600192.168.100.12:34893:去LISTEN7588/j avatcp600:10000LISTEN7588/javatcp600192.168.100.12:45303:LISTEN7588/javatcp600:4040LISTEN7588/java6.2分布式SQL引擎第六章Spark SQL Thrift JDBC/ODBC Server的搭建与测试(2)使用Beeline测试Thrift JDBC/ODBC Server 启动 beeline,/bin/beeline连接Thrift JDBC/ODBC Server iconnect jdbc:hive2:/cloud3:10000beeline!connect jdbc:hive2:/cloud3:10000Connecting to jdbc:hive2:/cloud3:10000Enter username for jdbc:hive2:/cloud3:10000:Enter password for jdbc:hive2:/cloud3:10000:17/08/05 02:56:55:Supplied authorities:cloud3:10000 17/08/05 02:56:55:Resolved authority:cloud3:10000 17/08/05 02:56:56:Will try to open client transport wit h JDBC Uri:jdbc:hive2:/cloud3:10000Connected to:Spark SQL(version 2.1.0)Driver:Hive JDBC(version 1.2.1.spark2)Transaction isolation:TRANSACT工ON_REPEATABLE_READ 0:jdbc:hive2:/cloud3:100006.2分布式SQL引擎第六章Spark SQL Thrift JDBC/ODBC Server的搭建与测试(3)使用SQL操作数据查看数据库:0:jdbc:hive2:/cloud3:10000 show databases;+-+一+I databaseName|+-+一+I default|I mytestdb|+-+一+指定当前数据库:use mytestdb6.2分布式SQL引擎第六章Spark SQL Thrift JDBC/ODBC Server的搭建与测试(3)使用SQL操作数据查看数据库中的表:0:jdbc:hive2:/cloud3:10000 show tables;+-+-+一一+I database I tableName I isTemporary|+-+-+一一+I mytestdb|test_tbl|false|+-=-+-+一+1 row selected(0.315 seconds)0:_idbc:hive2:/cloud3:10000查询数据:0:jdbc:hive2:/cloud3:10000 select*from test_tbl;I id|name|value|I 0|blue|10|I 1|red|20|2 rows selected(3.618 seconds)0:jcibc:hive2:/cloud3:10000大数据应用人才培养系列教材第六章Spark SQL6.1 Spark SQLh6:2分布式SQL引擎6.3 使用DataFrame API处理结构化数据习题,6.3使用DataFrame API处理结构化数据 第六章Spark SQL准备工作(1)准备多行Json数据格式文件test.jsonid:lz colorValue:20,name:nfruit_appleHid:2Z colorValue:10,name:nfruit_blueberryHnidn:3Z colorValue:20fname:nfruit_grapennidn:4,colorValue:10,name:nvegetables_radishnid:5Z ncolorValue:30,name:nvegetables_greensn id”:6,colorValue:30z name11:vegetables_cucuniber”(1)上传文件至Hadoop hdfs中,/bin/hadoop fs-put./test.json/testdata/)6.3使用DataFrame API处理结构化数据 第六章Spark SQL使用Spark Shell编写程序(1)启动 Spark Shell./bin/spark-shell(2)读取json文件scala val df_json=spark.read.json(HDFS:/cloudl:9000/te stdata/test j son)df_json:org.apache.spark.sql.DataFrame=colorValue:bi gint,id:bigint 1 more field(1)过滤选择数据scala val df_a=df_j son.filter($,colorValue,=10)df_a:org.apache.spark.sql.Datasetorg.apache.spark.sql ow=colorValue:bigint,id:bigint 1 more fieldscala-f w)d obval df_b=df_a.filter($name.startsWith(fruitorg.apache.spark.sql.Datasetorg.apache.spark.sql colorValue:bigint,id:bigint.1 more field.RH).R)6.3使用DataFrame API处理结构化数据 第六章Spark SQL使用Spark Shell编写程序(4)选择字段scala val df_final=df_b.select(,name,colorValue)df_final:org.apache.spark.sql.DataFrame=name:string,colorValue:bigint输出结果 scala df_final.show()+-+-+I name|colorValue|+-+-+Ifruit_blueberry|10|+-+-+,6.3使用DataFrame API处理结构化数据 第六章Spark SQL使用Spark Shell编写程序(6)通过Spark Web查看Spark SQL的执行情况Jobs Stages Storage Environment Executors SQLSQLCompleted QueriesIDDescriptionSubmittedDurationJobs0show at:32+details2017/04/01 11:04:584 s1,6.3使用DataFrame API处理结构化数据 第六章Spark SQL使用Spark Shell编写程序Data F ra me转换流程Details for Query 0Submitted Time:2017/04/01 11:04:58Duration:4 sSucceeded Jobs:1-YWholeStageCodegen1.6s(1.6 s,1.6 s,1.6 s)f Scan jsonnumber of output rows:6Filter number of output rows:1V ProjectCollectLimit)6.3使用DataFrame API处理结构化数据 第六章Spark SQL使用Spark Shell编写程序分析后的逻辑计划=Analyzed Logical Plan=name:string,colorValue:bigint GlobalLimit 21+-LocalLimit 21+-Project name#2j colorValue#0L+-Filter StartsWith(name#2,fruit)+-Filter(colorValue#0L=cast(10 as bigint)+-RelationcolorValue#0L,id#lLname#2 j son优化后的逻辑计划=Optimized Logical Plan=GlobalLimit 21+-LocalLimit 21+-Project name#2j colorValue#0L+-Filter(isnotnull(colorValue#0L)&(colorValue#0L=10)&StartsWith(name#2,fruit)+-RelationcolorValue#0L?id#lLj name#2 json)6.3使用DataFrame API处理结构化数据 第六章Spark SQL使用Spark Shell编写程序物理计划=Physical Plan=CollectLimit 21+-*Project name#2,colorValue#0L+-*Filter(isnotnull(colorValue#0L)&(colorValue#0L=10)&StartsWith(name#2 fruit)+-*FileScan json colorValue#0L,name#2 Batched:falsej Format:3SON,Location:InMemoryFileIndexHDFS:/cloudl:9000/testdata/test.json,PartitionFilters:,PushedFilters:IsNotNull(colorValue),EqualTo(colorValue?10)StringStartsWithCnamejfruit),ReadSchema:struct大数据应用人才培养系列教材第六章Spark SQL6.;Spark SQ嗔介612 分布式SQL引擎6.3 使用Data Fra me API处理结构化数据习题习题:1.Spark SQL作为分布式SQL引擎有哪几种使用方法?2.Spark SQL中的DataFrame与RDD有何区别?3.DataFrame API支持哪些数据源?请列举3个。4(2功1丫$1优化器对)/1操作优化吗?5.Spark SQL CLI的元数据库和数据默认情况下分别存在什 么地方?感谢聆听
展开阅读全文