Spark SQL入门示例
2023-09-14 09:01:57 时间
Spark SQL入门示例
首先,导入pom依赖:
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<spark.version>3.1.1</spark.version>
<spark.scala.version>2.12</spark.scala.version>
</properties>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_${spark.scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
只需要导入这一个坐标即可:spark-sql_${spark.scala.version}
接着编写代码:
package com.zxl.spark.sql
import org.apache.spark.sql.catalog.{Database, Table}
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.{DataFrame, Dataset, SparkSession, catalog}
object lesson01_sql_basic {
def main(args: Array[String]): Unit = {
// sql字符串 ==》 dataset 是对rdd的包装
// 只有rdd才能触发DAGScheduler
val conf: SparkConf = new SparkConf().setMaster("local").setAppName("testsql")
val session: SparkSession = SparkSession.builder()
.config(conf)
//.enableHiveSupport() spark sql on hive需要开启 支持ddl
.getOrCreate()
//可以获取到sc
val sparkContext: SparkContext = session.sparkContext
sparkContext.setLogLevel("ERROR")
val dataFrame: DataFrame = session.read.json("input/json")
//展示数据
println(">" * 50)
dataFrame.show()
//展示schema
println(">" * 50)
dataFrame.printSchema()
//while (true){}
println(">" * 50)
val databases: Dataset[Database] = session.catalog.listDatabases()
databases.show()
println(">" * 50)
val tables: Dataset[Table] = session.catalog.listTables()
tables.show()
println(">" * 50)
val functions: Dataset[catalog.Function] = session.catalog.listFunctions()
functions.show()
println(">" * 50)
dataFrame.createTempView("abc")
val dataFrame1: DataFrame = session.sql("select * from abc")
dataFrame1.show()
println(">" * 50)
session.catalog.listTables().show()
import scala.io.StdIn.readLine
while (true){
val sqlStr: String = readLine("input your sql:")
session.sql(sqlStr).show()
}
}
}
执行结果演示》》
相关文章
- 低级sql语法错误: BadSqlGrammarException
- 【知识库】-数据库_MySQL常用SQL语句语法大全示例
- Qt-QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connect...
- Sql Server之旅——第八站 复合索引和include索引到底有多大区别?
- sql编程
- Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案二:@Provider(8)
- SQL挑战——如何高效生成编码
- hive Spark SQL分析窗口函数
- 【学习总结】SQL的学习-汇总
- Spark SQL性能优化
- 使用Spark DataFrame针对数据进行SQL处理
- 大叔经验分享(23)spark sql插入表时的文件个数研究
- Spark修炼之道(进阶篇)——Spark入门到精通:第十节 Spark SQL案例实战(一)
- Spark修炼之道(高级篇)——Spark源码阅读:第十三节 Spark SQL之SQLContext(一)
- Spark修炼之道(高级篇)——Spark源码阅读:第十二节 Spark SQL 处理流程分析
- Spark修炼之道(进阶篇)——Spark入门到精通:第八节 Spark SQL与DataFrame(一)
- 为什么说Spark SQL远远超越了MPP SQL
- Spark SQL JOIN操作代码示例
- 用 SQL 语句查看 SQL Server 2008 端口号
- c#保存datagridview中的数据时报错 “动态SQL生成失败。找不到关键信息”
- Sql Server 常用函数
- Database之SQLSever:SQLSever数据表管理(GUI法/SQL语句命令法两种方法实现建立表、修改表,以及增、删、改、查)之详细攻略
- Exception in thread “main“ java.lang.NoClassDefFoundError: org/apache/spark/sql/SparkSession$
- openGauss内核:SQL解析过程分析
- SQL通配符的技巧
- Spark SQL Catalyst源代码分析Optimizer
- 【Apache Spark 】第 6 章Spark SQL 和数据集