SparkSQL读取json文件简单实现(一)

运行前提:
搭建Hadoop + Spark集群,安装jdk1.8及以上版本,Scala2.11,maven3

1、新建maven项目

SparkSQL读取json文件简单实现(一)_第1张图片
这里需要注意的是我们为了方便,直接勾选Create from archetype,然后从下面列表中选择scala archetype simple

2、填写GAV

这里按照个人设置,说白了GroupID就是公司的域名倒过来写
artifactId可以是你项目的名称
version就是项目的版本号
这些只是一个项目的识别,后面会体现在项目的pom.xml文件中

3、设置maven相关路径

SparkSQL读取json文件简单实现(一)_第2张图片
这里需要注意的就是填写setings.xml需要是你maven的设置文件的路径,第一次我按照默认的路径生成项目在运行时候报错,后面我找到了设置文件在maven的安装目录下
比如我的是:/opt/apache-maven-3.5.3/conf/settings.xml
其他设置按照个人喜好

4、填写项目名称

SparkSQL读取json文件简单实现(一)_第3张图片
接着点击finish即可

5、本地测试

将原有的Scala文件删掉,重写本地的测试代码

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.SQLContext

/**
  * SQLContext的使用
  * 
  */
object SQLContextApp {
  def main(args: Array[String]): Unit = {
    val path = args(0)
    //1、创建相应的context
    val sparkConf = new SparkConf()
    sparkConf.setAppName("SQLContextApp").setMaster("local[*]")
    val sc = new SparkContext(sparkConf)
    val sqlContext = new SQLContext(sc)

    //2、进行相关的处理
    val people = sqlContext.read.format("json").load(path)
    people.printSchema()
    people.show()
    //3、关闭资源
    sc.stop()
  }
}

这里需要注意的是:我们的args(0) 在本地测试时候是读取的本地的文件路径,可以在项目中进行配置
找到项目的edit configuration
按照下图进行设置:
SparkSQL读取json文件简单实现(一)_第4张图片
这里修改的是Program arguments 修改路径为:file:///usr/local/spark/examples/src/main/resources/people.json
当然这里是我的json文件所在的路径,我是直接拿Spark中自带的json文件进行测试,你也可以自己按照一定的格式读取
另外,可能有的坑就是在pom.xml 文件中关于Scala以及SparkSQL的依赖需要我们手动添加,因为项目最初建立的时候默认的Scala的版本比较低,需要修改为你的安装版本,比如我的是如下配置:
先指定properties

<properties>
    <scala.version>2.11.12scala.version>
    <spark.version>2.1.0spark.version>
  properties>

然后添加依赖,如果是初次运行maven项目的话可能要下载很多依赖,要等待下完


    <dependency>
      <groupId>org.scala-langgroupId>
      <artifactId>scala-libraryartifactId>
      <version>${scala.version}version>
    dependency>

    
    <dependency>
      <groupId>org.apache.sparkgroupId>
      <artifactId>spark-sql_2.11artifactId>
      <version>${spark.version}version>
    dependency>

到这里基本的环境配置就完成了
maven会自动进行编译,如下图:
SparkSQL读取json文件简单实现(一)_第5张图片
看到BUILD SUCCESS 还是很开心的

6、运行

结果截图:
SparkSQL读取json文件简单实现(一)_第6张图片

总结

虽然实现了最终的结果,对于SparkSQL进行了简单的测试输出,但是由于是第一次实现,还是有很多不足的地方,比如代码中的函数已经过时,新的代码使用规范将会在后面进行测试,另外后面会写关于如何在集群上进行测试的教程。

你可能感兴趣的:(SparkSQL读取json文件简单实现(一))