sparksql 简单使用

sparksql 简单使用第一种 通过 caseclasspac lijieimporto apache spark SparkConf SparkContext importorg apache spark sql SQLContext Createdbyjie 7 31 objectSparkS defmain args

标记一个博客怕找不到了:http://www.cnblogs.com/shishanyuan/p/4723713.html

第一种:
通过case class

package cn.lijie import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.SQLContext / * Created by jie on 2017/7/31. */ object SparkSql01 { 
    def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("sparksql").setMaster("local[2]") val sc = new SparkContext(conf) val sqlContext = new SQLContext(sc) System.setProperty("user.name","bigdata") val rdd = sc.textFile("C:\\Users\\jie\\Desktop\\game.txt").map{ x =>{ val split = x.split(",") Game(split(0).toLong,split(1),split(2).toInt) }} import sqlContext.implicits._ val df = rdd.toDF df.registerTempTable("t_game") sqlContext.sql("select * from t_game where id <= 2").write.json("C:\\Users\\jie\\Desktop\\game.json") val newDf = sqlContext.load("C:\\Users\\jie\\Desktop\\game.json","json") newDf.show } } case class Game(id:Long,name:String,level:Int) 

第二种:
通过StructType

package cn.lijie import org.apache.spark.sql.{Row, SQLContext} import org.apache.spark.sql.types._ import org.apache.spark.{SparkConf, SparkContext} / * Created by jie on 2017/7/31. */ object SparkSql01 { 
    def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("sparksql").setMaster("local[2]") System.setProperty("user.name","bigdata") val sc = new SparkContext(conf) val sqlContext = new SQLContext(sc) val rdd = sc.textFile("C:\\Users\\jie\\Desktop\\game.txt") val schema = StructType( List( StructField("id", LongType, true), StructField("name", StringType, true), StructField("age", IntegerType, true) ) ) val rowRDD = rdd.map(x => { Row(x(0).toLong, x(1), x(2).toInt) }) val df = sqlContext.createDataFrame(rowRDD, schema) df.registerTempTable("t_game") sqlContext.sql("select * from t_game where id <= 2").write.json("C:\\Users\\jie\\Desktop\\game.json") val newDf = sqlContext.load("C:\\Users\\jie\\Desktop\\game.json","json") newDf.show } } case class Game(id: Long, name: String, level: Int) 

pom

 
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0 
   modelVersion> <groupId>spark-sparksql 
   groupId> <artifactId>spark-sql 
   artifactId> <version>1.0-SNAPSHOT 
   version> <properties> <maven.compiler.source>1.7 
   maven.compiler.source> <maven.compiler.target>1.7 
   maven.compiler.target> <encoding>UTF-8 
   encoding> <scala.version>2.10.6 
   scala.version> <spark.version>1.6.1 
   spark.version> <hadoop.version>2.6.4 
   hadoop.version>  
   properties> <dependencies> <dependency> <groupId>org.scala-lang 
   groupId> <artifactId>scala-library 
   artifactId> <version>${scala.version} 
   version>  
   dependency> <dependency> <groupId>org.apache.spark 
   groupId> <artifactId>spark-core_2.10 
   artifactId> <version>${spark.version} 
   version>  
   dependency> <dependency> <groupId>org.apache.spark 
   groupId> <artifactId>spark-sql_2.10 
   artifactId> <version>${spark.version} 
   version>  
   dependency> <dependency> <groupId>org.apache.hadoop 
   groupId> <artifactId>hadoop-client 
   artifactId> <version>${hadoop.version} 
   version>  
   dependency>  
   dependencies> <build> <sourceDirectory>src/main/scala 
   sourceDirectory> <testSourceDirectory>src/test/scala 
   testSourceDirectory> <plugins> <plugin> <groupId>net.alchim31.maven 
   groupId> <artifactId>scala-maven-plugin 
   artifactId> <version>3.2.2 
   version> <executions> <execution> <goals> <goal>compile 
   goal> <goal>testCompile 
   goal>  
   goals> <configuration> <args> <arg>-make:transitive 
   arg> <arg>-dependencyfile 
   arg> <arg>${project.build.directory}/.scala_dependencies 
   arg>  
   args>  
   configuration>  
   execution>  
   executions>  
   plugin> <plugin> <groupId>org.apache.maven.plugins 
   groupId> <artifactId>maven-shade-plugin 
   artifactId> <version>2.4.3 
   version> <executions> <execution> <phase>package 
   phase> <goals> <goal>shade 
   goal>  
   goals> <configuration> <filters> <filter> <artifact>*:* 
   artifact> <excludes> <exclude>META-INF/*.SF 
   exclude> <exclude>META-INF/*.DSA 
   exclude> <exclude>META-INF/*.RSA 
   exclude>  
   excludes>  
   filter>  
   filters> <transformers> <transformer  implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>cn.lijie.SparkSql01 
   mainClass>  
   transformer>  
   transformers>  
   configuration>  
   execution>  
   executions>  
   plugin>  
   plugins>  
   build>  
   project>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218826.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午11:23
下一篇 2026年3月17日 下午11:23


相关推荐

  • Python读txt(python打开txt文件)

    python读写txt文件准备原始txt数据3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110…

    2022年4月17日
    69
  • python电脑版微信-微信PC版的API接口 | 可通过Python调用微信功能

    python电脑版微信-微信PC版的API接口 | 可通过Python调用微信功能微信PC版的API接口,可通过Python调用微信获取好友、群、公众号列表,并收发消息,接受转账、好友请求、入群请求,群管理等功能。可用于二次开发在线微信机器人、微信消息监控、群控软件、开发界面作多个微信控制软件等用途。clone/下载源码到本地安装源码包里的微信客户端(你以前的版本和这个不一致的都需要安装这个)执行源码中的test.py目前提供pyd和依赖的相关文件,通过python直接impo…

    2022年5月16日
    40
  • Cursor Settings汉化设置界面记录分享–cursor切换中文

    Cursor Settings汉化设置界面记录分享–cursor切换中文

    2026年3月16日
    5
  • 超声波雷达应用总结「建议收藏」

    超声波雷达应用总结「建议收藏」超声波雷达应用总结超声波雷达简介超声波雷达的数学模型超声波雷达的特性超声波雷达配置情况无人驾驶中超声波主要的应用超声波雷达简介常见的超声波雷达有两种。第一种是安装在汽车前后保险杠上的,也就是用于测量汽车前后障碍物的倒车雷达,这种雷达业内称为UPA;第二种是安装在汽车侧面的,用于测量侧方障碍物距离的超声波雷达,业内称为APA。UPA超声波雷达UPA超声波雷达的探测距离一般在15~250cm之间,主要用于测量汽车前后方的障碍物。如下图所示,为单个UPA的探测范围示意图。APA超声波雷达A

    2025年10月30日
    5
  • 发现C++Builder 2010一组类BUG

    发现C++Builder 2010一组类BUG

    2022年1月16日
    45
  • git切换到指定远程分支

    git切换到指定远程分支我们在使用git进行开发的时候经常会遇到需要切换远程分支并且提交到远程指定分支的情况,现在记录下操作步骤。查看远程所有分支$gitbranch-agitbranch不带参数,列出本地已经存在的分支,并且在当前分支的前面用*标记,加上-a参数可以查看所有分支列表,包括本地和远程,远程分支一般会用红色字体标记出来*devmasterremote…

    2022年4月13日
    85

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号