zoukankan      html  css  js  c++  java
  • 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()


  • 相关阅读:
    vue-cli router的使用
    vue element new vue const
    mac terminal update management pack
    关于MAC升级后,vim更新插件报错
    flex入门----基础知识
    常用的flex知识 ,比起float position 好用不少
    npm 安装nodesass 或者包含nodesass的脚手架工具报错问题
    anglar cli的 rxjs_1.of is not a function
    npm node sass 安装报错
    axios ajax fetch 区别
  • 原文地址:https://www.cnblogs.com/blue-tadpole/p/7058107.html
Copyright © 2011-2022 走看看