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

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

1、新建maven项目

这里写图片描述
这里需要注意的是我们为了方便,直接勾选Create from archetype,然后从下面列表中选择scala archetype simple

2、填写GAV

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

3、设置maven相关路径

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

4、填写项目名称

这里写图片描述
接着点击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
按照下图进行设置:
这里写图片描述
这里修改的是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.12</scala.version>
    <spark.version>2.1.0</spark.version>
  </properties>

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

<!---scala dependency -->
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
      <version>${scala.version}</version>
    </dependency>

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

到这里基本的环境配置就完成了
maven会自动进行编译,如下图:
这里写图片描述
看到BUILD SUCCESS 还是很开心的

6、运行

结果截图:
这里写图片描述

总结

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值