Spark SQL技术平台详解_第1页
Spark SQL技术平台详解_第2页
Spark SQL技术平台详解_第3页
Spark SQL技术平台详解_第4页
Spark SQL技术平台详解_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、技术创新,变革未来Spark SQL技术平台详解内容Spark SQL介绍Spark SQL APIDataFrame开发 Spark SQL示例Spark SQL优化Spark SQL是什么Spark SQL的前生是Shark基于Spark最佳的SQL计算专门用于处理结构化数据支持多种数据源,包括Hive、parquet、orc、JSON、 RDBMS、RDD等性能优化上做的很好使用简单,代码易读给熟悉SQL的技术人员提供快速访问大数据 的工具Spark SQL APISQL与hive类似有SparkSQL命令行有thriftserver和beeline客户端DataFrameDataFra

2、me可以在spark程序中使用SQL与RDD类似的分布式数据集,但增加了列的 概念之前是SchemaRDD将来是DataSet其API支持Scala/Java/Python/RSQL与控制语句的结合DataFrame开发创建SQLContext对象生成DataFrame,可来自RDD或其他数据源执行Transformation,调用DataFrame API或 者通过函数执行sql执行Action,返回结果或保存到文件中DataFrame开发创建SQLContext对象/ 导入语句,可以隐式地将RDD转化成DataFrame import sqlContext.implicits._/ 首先用

3、SparkContext对象创建SQLContext对象val sqlContext = new org.apache.spark.sql.SQLContext(sc)DataFrame开发RDD生成DataFrame/参数名即为列名case class Employee(id: Int, name: String, age: Int)val rdd = sc.textFile(employee.txt)val df = rdd.map(_.split(,).map(e = employee(e(0).trim.toInt, e(1), e(2).trim.toInt).toDF()DataF

4、rame开发import sqlContext.implicits._val sqlContext = new org.apache.spark.sql.SQLContext(sc)case class Employee(id: Int, name: String, age: Int) val rdd = sc.textFile(employee.txt)val df = rdd.map(_.split(,).map(e = employee(e(0).trim.toInt, e(1), e(2).trim.toInt).toDF()df.show() df.printSchema() df.

5、select(name).show()df.filter(df(age) 21).show()df.groupBy(age).count().show()DataFrame开发RDD生成DataFramecase class方式:通过定义case Class,使用反射推断SchemaapplySchema方式:通过可编程接口,定义Schema, 并应用到RDD上DataFrame读写多种数据源RDDJSONParquetJDBCDataFrame SaveModeSaveMode选择SaveMode.Append:将新数据追加在原数 据后面SaveMode.Overwrite:覆盖原数据Sav

6、eMode.ErrorIfExists:默认为此状态SaveMode.Ignore:如果文件存在就放弃写Spark SQL示例RDD转DataFrameJSON转DataFrameParquet转DataFramehive表转DataFramehive表与非hive表混合使用cache使用Spark SQL 优化选项默认值含义spark.sql.shuffle.partitions200设置Shuffle过程中Reduce Task的并行度spark.sql.autoBroadcast JoinThreshold10M广播join表,在内存够用 的情况下,增加其大小spark.sql.inMe

7、moryColu mnarSpresse dtrue会自动压缩内存中的列式存储spark.sql.parqupr ession.codecsnappy可以设置多种编码方式, 除了snappy外,还可以 设置为uncompressed, gzip和lzospark.sql.tungsten.enabl edtrue钨丝计划自动管理内存Spark SQL 优化通sqlContext.setConf(“spark.sql.shuffle.partitions”, 20)设置编写SQL时,给出明确的列名,如select column1, column2 from table,不要写select *的方式对于Spark SQL查询结果,如果数据量比较大,比 如超过1000条,那么就不要一次性collect()到Driver对于SQL语句中多次使用到的表,对其进行缓存, 使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论