spark1.2.1下的sql测试

来源:互联网 发布:跟孩子一起学编程 pdf 编辑:程序博客网 时间:2024/06/11 00:12

安装了spark之后,可以在 shell中执行Spark SQL。Spark SQL是支持在Spark中使用Sql、HiveSql、Scaca中的关系型查询表达式。它的核心组件是一个新增的RDD类型SchemaRDD,它把行对象用一个Schema来描述行里面的所有列的数据类型,它就像是关系型数据库里面的一张表。它可以从原有的RDD创建,也可以是Parquet文件,最重要的是它可以支持用HiveQL从hive里面读取数据。

首先查看下数据文件:


Spark SQL测试:

  1. val sqlContext = new org.apache.spark.sql.SQLContext(sc)  
  2. import sqlContext._  
  3. case class Person(name: String, age: Int)  
  4. val people = sc.textFile("/user/hadoop/test/input/test.txt").map(_.split(",")).map(p => Person(p(0), p(1).trim.toInt))  
  5. people.registerAsTable("people")  
  6. val teenagers = sql("SELECT name FROM")  
  7. teenagers.map(t => "Name: " + t(0)).collect().foreach(println)
  8. shell将输出:

14/11/23 16:28:07 INFO SparkContext: Job finished: collect at <console>:20, took 0.377845624 s
Name: a


HiveQL测试:

  1. val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)  
  2. import hiveContext._  
  3. hql("CREATE TABLE IF NOT EXISTS src (key INT, value STRING)")  
  4. hql("LOAD DATA LOCAL INPATH '/home/hadoop/shareWin/test.txt' INTO TABLE src")  
  5. hql("SELECT count(*) FROM src").collect().foreach(println)  
  6. hql("SELECT key, value FROM src ").collect().foreach(println) 

通过hive数据库里 可以查到sparkhivesql的创建的表,也可以查到数据

0 0