Spark-编程执行Spark SQL查询
来源:互联网 发布:wordpress mac 编辑:程序博客网 时间:2024/05/18 00:35
首先在maven项目的pom.xml中添加Spark SQL的依赖。
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.10</artifactId>
<version>1.5.2</version>
</dependency>
package cn.itcast.spark.sqlimport org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.sql.SQLContextobject InferringSchema { def main(args: Array[String]) { //创建SparkConf()并设置App名称 val conf = new SparkConf().setAppName("SQL-1") //SQLContext要依赖SparkContext val sc = new SparkContext(conf) //创建SQLContext val sqlContext = new SQLContext(sc) //从指定的地址创建RDD val lineRDD = sc.textFile(args(0)).map(_.split(" ")) //创建case class //将RDD和case class关联 val personRDD = lineRDD.map(x => Person(x(0).toInt, x(1), x(2).toInt)) //导入隐式转换,如果不到人无法将RDD转换成DataFrame //将RDD转换成DataFrame import sqlContext.implicits._ val personDF = personRDD.toDF //注册表 personDF.registerTempTable("t_person") //传入SQL val df = sqlContext.sql("select * from t_person order by age desc limit 2") //将结果以JSON的方式存储到指定位置 df.write.json(args(1)) //停止Spark Context sc.stop() }}//case class一定要放到外面case class Person(id: Int, name: String, age: Int)
将程序打成jar包,上传到spark集群,提交Spark任务
/usr/local/spark-1.5.2-bin-hadoop2.6/bin/spark-submit \
--class cn.itcast.spark.sql.InferringSchema \
--master spark://node1.itcast.cn:7077 \
/root/spark-mvn-1.0-SNAPSHOT.jar \
hdfs://node1.itcast.cn:9000/person.txt \
hdfs://node1.itcast.cn:9000/out
查看运行结果
hdfs dfs -cat hdfs://node1.itcast.cn:9000/out/part-r-*
阅读全文
0 0
- Spark-编程执行Spark SQL查询
- Spark sql查询执行过程
- Spark SQL基础学习【二】以编程方式执行Spark SQL查询
- spark执行sql语句
- spark SQL 执行过程
- spark-sql like查询
- spark-sql 集合hive查询数据执行日志
- Spark-sql:以编程方式执行Spark SQL查询(通过反射的方式推断出Schema,通过StrutType直接指定Schema)
- spark-sql(不包含hive-sql)查询编程
- Spark-SQL编程总结
- Spark SQL 编程示例
- Spark SQL & Spark Hive编程开发, 并和Hive执行效率对比
- 编写Spark SQL查询程序
- Spark SQL编程指南pdf
- 当对象包含嵌套对象时,使用Spark SQL执行sql查询抛出scala.MatchError异常
- spark-thrift-server 执行spark-sql 的OOM GC异常.
- Spark Streaming+Spark SQL
- 执行spark sql 遇到的问题
- CentOS6.3如何安装Gnome界面
- 网页设计
- 2017年6月4日大连海事大学acm校赛 后记
- 刷题
- package属性及其概念
- Spark-编程执行Spark SQL查询
- mytest 测试ObjectName对象
- Java程序员最常用的Linux命令
- 我的名字,对你有什么意义?
- Android多线程
- MySQL入门——查看指定表的索引情况的两种方式
- 子数组之和
- 前端开发手册大全11个(CSS-javascript-jquery-w3c-XHTML-XML).zip
- 优化 App 的启动时间