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()


  • 相关阅读:
    delphi 随意将函数执行权限提高到Ring0源代码
    delphi 使电脑睡眠代码
    delphi 监控文件系统
    在Delphi中使用系统对应文件类型的图标
    Panel
    delphi 读写记录类型文件Record
    C# winform 一次只能允许一个应用(使用mutex)
    winform捕获全局异常
    观察者模式实践-实现winform 窗体之间传值(事件实现)
    在wpf中利用异步lambda编程,模拟数据库连接,防止界面假死
  • 原文地址:https://www.cnblogs.com/blue-tadpole/p/7058107.html
Copyright © 2011-2022 走看看