当前位置:首页 > 开发 > 开源软件 > 正文

【Spark十六】: Spark SQL第二部分数据源和注册表的几种方式

发表于: 2015-01-10   作者:bit1129   来源:转载   浏览:
摘要: Spark SQL数据源和表的Schema case class apply schema parquet json JSON数据源 准备源数据 {"name":"Jack", "age": 12, "addr":{"city":"beijing&

Spark SQL数据源和表的Schema

  • case class

  • apply schema

  • parquet

  • json

JSON数据源

准备源数据

{"name":"Jack", "age": 12, "addr":{"city":"beijing",  "zipcode":"111"}}
{"name":"Todd", "age": 22, "addr":{"city":"shandong", "zipcode":"222"}}
{"name":"Ted", "age": 32, "addr":{"city":"hebei",     "zipcode":"333"}}

 

 

这是一个嵌套的person信息,每一行是一个完整的JSON数据串,Spark SQL在解析的时候,也是按照行进行读

在Spark Shell上执行如下操作,即可得到结果Jack和Ted。

 

 

///创建SQL对象,传入当前的SparkContext
scala> val sqlContext= new org.apache.spark.sql.SQLContext(sc) 

///从本地磁盘加载json数据,从本地磁盘读取必须显式的执行URL Scheme;不指定则默认使用hdfs
scala> val jsonpeople = sqlContext.jsonFile("file:///home/hadoop/software/spark-1.2.0-bin-hadoop2.4/examples/src/main/resources/people2.json")

///注册临时表,所谓临时是指该表是跟当前的SQLContext绑定的,其它的Context看不到这个表
///表共享如何做?
scala> jsonpeople.registerTempTable("jsonTable")

///查询操作
scala> sqlContext.sql("SELECT name FROM jsonTable WHERE addr.zipcode = 111 or age >= 30").map(t => "Name: " + t(0)).collect().foreach(println) 

 

 

可见,在Spark SQL操作JSON时,不需要因为RDD的隐式转换,因为这里没有RDD的隐式转换操作

 

val sqlContext= new org.apache.spark.sql.SQLContext(sc) 

 

 

 

未完待续

 

 

【Spark十六】: Spark SQL第二部分数据源和注册表的几种方式

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
在Spark中, RDD是有依赖关系的,这种依赖关系有两种类型 窄依赖(Narrow Dependency) 宽依赖(Wide D
在Spark中, RDD是有依赖关系的,这种依赖关系有两种类型 窄依赖(Narrow Dependency) 宽依赖(Wide D
1.distinct 2.cogroup 1.distinct 1.示例代码 package spark.examples import org.apache.spark.{Sp
1.distinct 2.cogroup 1.distinct 1.示例代码 package spark.examples import org.apache.spark.{Sp
本文是按照周志胡老师的博客实践的,再次特别感谢周老师! Spark修炼之道(进阶篇)——Spark入门到
上周Spark1.2刚发布,周末在家没事,把这个特性给了解一下,顺便分析下源码,看一看这个特性是如何
7 spark
环境: Hadoop版本:Apache Hadoop2.7.1 Spark版本:Apache Spark1.4.1 核心代码: 测试数据: Java
本文对Sogou的日志进行分析,Sogou日志下载地址. http://download.labs.sogou.com/dl/sogoulabdown/
RDD,Resilient Distributed Object,弹性分布式数据集,是Spark牛逼的基石。 RDD是什么? Spark使
RDD,Resilient Distributed Object,弹性分布式数据集,是Spark牛逼的基石。 RDD是什么? Spark使
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号