当前位置:   article > 正文

spark 读取hive java_Spark2.0入门:连接Hive读写数据(DataFrame)

spark java api读hive打印每一列数据

76b5ba58fb8e05095d640dfdbd045795.png

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!

[返回Spark教程首页]

Hive是基于Hadoop的数据仓库(要想了解更多数据仓库Hive的知识以及如何安装Hive,可以参考厦门大学数据库实验室的Hive授课视频、Hive安装指南)。本节内容介绍Spark如何连接Hive并读写数据。

一、让Spark包含Hive支持

为了让Spark能够访问Hive,必须为Spark添加Hive支持。Spark官方提供的预编译版本,通常是不包含Hive支持的,需要采用源码编译,编译得到一个包含Hive支持的Spark版本,然后采用我们之前在“Spark安装和使用”部分介绍的方法安装Spark。

测试一下电脑上已经安装的Spark版本是否支持Hive

现在让我们测试一下自己电脑上已经安装的Spark版本是否支持Hive。请请登录Linux系统,打开一个终端,然后,执行下面命令:

cd /usr/local/spark

./bin/spark-shell

这样就启动进入了spark-shell,然后在scala命令提示符下输入:

scala> import org.apache.spark.sql.hive.HiveContext

:25: error: object hive is not a member of package org.apache.spark.sql

import org.apache.spark.sql.hive.HiveContext

^

看到了吧,会返回错误信息,也就是spark无法识别org.apache.spark.sql.hive.HiveContext,这就说明你当前电脑上的Spark版本不包含Hive支持。

如果你当前电脑上的Spark版本包含Hive支持,那么应该显示下面的正确信息:

scala> import org.apache.spark.sql.hive.HiveContext

import org.apache.spark.sql.hive.HiveContext

采用源码编译方法得到支持Hive的Spark版本

经过上面测试,如果你当前电脑上的Spark版本包含Hive支持,那就可以不用进行下面的源码编译步骤。如果你当前电脑上的Spark版本不包含Hive支持,请根据下面教程编译一个包含Hive支持的Spark版本。

请登录Linux系统,打开一个火狐(Firefox)浏览器。在Linux系统的火狐浏览器中,请点击这里访问Spark官网下载Spark源码版本(或者直接把下载地址复制到火狐浏览器中打开官网,下载地址是http://spark.apache.org/downloads.html)。

进入这个官网后,可以按照下图配置选择“2.0.2(Nov 14, 2016)”和“SourceCode”,然后,在图中红色方框内,有个“Download Spark: spark-2.0.2.tgz”的下载链接,点击该链接就可以下载Spark源码文件了。

b0df966b1a9a9b3293f4b68ea0408544.png

如果是在火狐浏览器中下载spark-2.0.2.tgz,这个文件被默认放置在你当前用户的下载目录下,我们教程是统一使用hadoop用户登录Linux系统,所以,下载文件被放到了“/home/hadoop/下载”这个目录下。

由于带有中文名称的目录在进行打包编译时,往往容易出现错误,为了保险起见,我们还是把这个文件解压缩到一个英文目录下。请在Linux系统中打开一个终端,然后执行下面命令进行文件解压:

cd /home/hadoop/下载 //spark-2.0.2.tgz就在这个目录下面

ls //可以看到刚才下载的spark-2.0.2.tgz文件

sudo tar -zxf ./spark-2.0.2.tgz -C /home/hadoop/

cd /home/hadoop

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/647452
推荐阅读
相关标签
  

闽ICP备14008679号