• Spark SQL External DataSource简介


     随着Spark1.2的发布,Spark SQL开始正式支持外部数据源。这使得Spark SQL支持了更多的类型数据源,如json, parquet, avro, csv格式。只要我们愿意,我们可以开发出任意的外部数据源来连接到Spark SQL。

    示例: 存储json数据。

    CREATE TEMPORARY TABLE jsonTable
    USING org.apache.spark.sql.json
    OPTIONS (
      path '/path/to/data.json'
    )

    详细示例:
    1. DDL创建外部数据资源表jsonTable
    scala> import org.apache.spark.sql.SQLContext
    scala> import sqlContext._
    //创建jsonTable外部数据源表,并且指定其数数据源文件是people.json这个json文件,同时指定使用org.apache.spark.sql.json该类型的隐式转化类
    scala> val jsonDDL = s"""
         | |CREATE TEMPORARY TABLE jsonTable
         | |USING org.apache.spark.sql.json
         | |OPTIONS (
         | | path  'file:///Users/shengli/git_repos/spark/examples/src/main/resources/people.json'
         | |)""".stripMargin
    jsonDDL: String = 
    "
    CREATE TEMPORARY TABLE jsonTable
    USING org.apache.spark.sql.json
    OPTIONS (
     path  'file:///Users/shengli/git_repos/spark/examples/src/main/resources/people.json'
    )"
    
    scala> sqlContext.sql(jsonDDL).collect() //创建该外部数据源表jsonTable
    res0: Array[org.apache.spark.sql.Row] = Array()

    2.查看schemaRDD
    scala> val jsonSchema = sqlContext.sql(jsonDDL)
    ExecutedCommand来取把数据用spark.sql.json的方式从path加载到jsonTable中。

    3.查看各阶段执行计划:
    scala> sqlContext.sql("select * from jsonTable").queryExecution
    4.sql查询:
    scala> sqlContext.sql("select * from jsonTable")
    5.执行sql:
    scala> sqlContext.sql("select * from jsonTable").collect



    API使用:
    scala> sqlContext.jsonFile("file:///Users/shengli/git_repos/spark/examples/src/main/resources/people.json")
    scala> json.registerTempTable("jsonFile")
    scala> sql("select * from jsonFile").collect()


  • 相关阅读:
    汉诺塔
    破损的键盘
    解方程
    运输计划
    选学霸
    子集和的目标值
    棋盘染色2
    守卫者的挑战
    飞扬的小鸟
    攻克城堡
  • 原文地址:https://www.cnblogs.com/blue-tadpole/p/7058107.html
Copyright © 2020-2023  润新知