spark sql 使用hive作为数据源
来源:互联网 发布:1.2基本算法语句 编辑:程序博客网 时间:2024/05/01 09:04
本来是很简单的一件事,代码也不复杂,如下:
代码:
public class LocationFromHiveDataSource {
@SuppressWarnings("deprecation")
public static void main(String[] args) {
// 首先还是创建SparkConf
SparkConf conf = new SparkConf()
.setAppName("LocationFromHiveDataSource");
// 创建JavaSparkContext
JavaSparkContext sc = new JavaSparkContext(conf);
// 创建HiveContext,注意,这里,它接收的是SparkContext作为参数,不是JavaSparkContext,其实也可以使用JavaSparkContext,只不过内部也是做了sc.sc()的操作
HiveContext hiveContext = new HiveContext(sc.sc());
DataFrame goodStudentsDF = hiveContext.sql("SELECT * FROM student");
goodStudentsDF.show();
sc.close();
}
}
打成jar包后,使用spark-submit提交即可,提交脚本如下:
#!/bin/bash
/usr/local/spark/bin/spark-submit --jars /usr/local/spark/lib/mysql-connector-java-5.1.18-bin.jar --class com.telecom.location.hive.LocationFromHiveDataSource --files /usr/local/hive/conf/hive-site.xml /usr/local/sparkshell/wingpay.jar
当然你得在hive中创建了表,里面最好有点数据,如果顺利,屏幕上会输出令你觉得很舒心的类似于使用mysql查看数据的结果,但是如果你的spark版本和hadoop版本不一致的话
那你就哭吧,哭完了之后,重新下载一个跟hadoop一致的spark预编译版本或者自己编译一个。因为有些spark版本根本就没有将hive相关的东西打包进spark的编译包,这时就会报各种类找不到,方法找不到。
虽然例子很简单,但是换spark之前我把hive也换成了最新的了,然后还是按照之前一样启动,过程那叫一个曲折,新版本实用hive命令之前得使用schematool初始化metadata之类的,如:
[root@hadoop0 bin]# ./schematool -initSchema -dbType mysql
通过动手来跑这个程序,才发现以前那种看到了这个例子觉得很简单懒得去动手做的习惯真的是太蠢了,平时多流汗,战时少流血是有道理的,如果开始学的时候认认真真的跑一遍,实际上使用的时候就不会忙得手忙脚乱。
- spark sql 使用hive作为数据源
- 8.Spark SQL:Hive数据源实战
- Spark SQL Hive数据源复杂综合案例实战
- Hive作为Mondrian的数据源
- SparkSQL配置(HIVE作为数据源)
- Spark SQL在Hive中的使用
- Spark SQL和Hive使用场景?
- spark sql on hive配置及其使用
- Spark SQL 整合Hive的使用
- 大数据IMF传奇行动绝密课程第69课:Spark SQL通过Hive数据源实战
- Spark SQL with Hive
- Spark SQL+Hive历险记
- spark sql on hive
- spark-sql读取hive
- spark-sql 结合 hive
- spark sql with hive
- Spark Hive SQL实例
- Spark SQL Hive Tables
- Linux查看系统信息的一些命令以及查看已安装软件包的命令
- logback用法
- Proxy模式详解--设计模式(12)
- Android-NoHttp问答记录
- 视频录制,照片拍摄,保存等,UIImagePickerController
- spark sql 使用hive作为数据源
- 【Excel】一次性取消所有隐藏的行?
- Android获取内外SD卡路径
- jdbc PreparedStatement变量替换
- iOS实时获取网络状态之RealReachability
- Spring事务
- LeetCode 304 Range Sum Query 2D - Immutable(范围求和2D - 不可变)
- Java类成员的初始化顺序
- 复数的物理意义