分会场付士涛x.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
创建DataFrame的形式 使用 SQLContext,应用可以从一个存在的 RDD、Hive 表或者数据源中创建 DataFrame。 val sc: SparkContext // An existing SparkContext. val sqlContext = new org.apache.spark.sql.SQLContext(sc) val df = sqlContext.read.json(file:///home/data/people.json) // Displays the content of the DataFrame to stdout df.show() DataFrame操作 DataFrame提供了一种DSL语言,例如scala,java以及python RDD转化为DataFrame 利用反射推断模式 Spark SQL的 Scala 接口支持将包含样本类的 RDD 自动转换为 DataFrame。这个样本类定义了表的模式。样本类的参数名字通过反射来读取,然后作为列的名字。样本类可以嵌套或者包含复杂的类型如序列或者数组。这个 RDD 可以隐式转化为一个 DataFrame,然后注册为一个表,表可以在后续的 sql 语句中使用。 编程指定模式 当样本类不能提前确定(例如,记录的结构是经过编码的字符串,或者一个文本集合将会被解析,不同的字段投影给不同的用户),一个 DataFrame 可以通过三步来创建。 从原来的 RDD 创建一个行的 RDD 创建由一个 StructType 表示的模式与第一步创建的 RDD 的行结构相匹配 在行 RDD 上通过 createDataFrame 方法应用模式 反射推断模式 val sqlContext = new org.apache.spark.sql.SQLContext(sc) import sqlContext.implicits._ case class Person(name: String, age: Int) val people = sc.textFile(file:///resources/people.txt).map(_.split(,)).map(p = Person(p(0), p(1).trim.toInt)).toDF() people.registerTempTable(people) val teenagers = sqlContext.sql(SELECT name, age FROM people WHERE age = 13 AND age = 19) teenagers.map(t = Name: + t(0)).collect().foreach(println) 编程指定模式 从原来的 RDD 创建一个行的 RDD val sqlContext = new org.apache.spark.sql.SQLContext(sc) val people = sc.textFile(file:///resources/people.txt) import org.apache.spark.sql.Row; val rowRDD = people.map(_.split(,)).map(p = Row(p(0), p(1).trim)) 创建由一个 StructType 表示的模式与第一步创建的 RDD 的行结构相匹配 val schemaString = name age import org.apache.spark.sql.types.{StructType,StructField,StringType}; val schema =StructType( schemaString.split( ).map(fieldName = StructField(fieldName, StringType, true))) 在行 RDD 上通过 createDataFrame 方法应用模式 val peopleDataFrame = sqlContext.createDataFrame(rowRDD, schema) peopleDataFrame.registerTempTable(people) val results = sqlContext.sql(SELECT name FROM people) results.map(t = Name: + t(0)).collect().foreach(println) Spark SQL 介绍 付士涛 大纲 Architecture(架构) 像Hive一样的User Interface(用户操作界面) DataFrame的使用(

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档