Spark SQL快速入门系列之Hive 4年前

点击上方蓝色字体,选择“设为星标

回复”资源“获取更多资源

大数据技术与架构

点击右侧关注,大数据开发领域最强公众号!

暴走大数据

点击右侧关注,暴走大数据!

目录

  • 一.hive和spark sql的集成方式(面试可能会问到)

  • 二.spark_shell和spark_sql操作

  • spark_shell

  • spark_sql

  • 使用hiveserver2 + beeline

  • 三.脚本使用spark-sql

  • 四.idea中读写Hive数据

  • 1.从hive中读数据

  • 2.从hive中写数据

  • 使用hive的insert语句去写

  • 使用df.write.saveAsTable("表名")(常用)

  • 使用df.write.insertInto("表名")

  • 3.saveAsTable和insertInto的原理

  • 五.聚合后的分区数

一.hive和spark sql的集成方式(面试可能会问到)


hive on spark(版本兼容)
官网https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started

spark on hive(版本兼容)
官网
http://spark.apache.org/docs/2.1.1/sql-programming-guide.html#hive-tables

二.spark_shell和spark_sql操作

spark_shell


如果你在集群上使用了tez,你需要在spark/conf下spark-defaults.conf添加lzo的路径

spark.jars=/export/servers/hadoop-2.7.7/share/hadoop/common/hadoop-lzo-0.4.20.jar

spark-yarn模式启动

bin/spark-shell --master yarn

spark_sql

完全跟sql一样


使用hiveserver2 + beeline

spark-sql 得到的结果不够友好, 所以可以使用hiveserver2 + beeline
1.启动thriftserver(后台)

sbin/start-thriftserver.sh

2.启动beeline

bin/beeline

三.脚本使用spark-sql

四.idea中读写Hive数据

1.从hive中读数据


添加依赖

<dependency>

代码实现

import org.apache.spark.sql.SparkSession

结果

2.从hive中写数据

使用hive的insert语句去写

import org.apache.spark.sql.SparkSession

使用df.write.saveAsTable(“表名”)(常用)

import org.apache.spark.sql.SparkSession

使用df.write.insertInto(“表名”)

import org.apache.spark.sql.SparkSession

3.saveAsTable和insertInto的原理

saveAsTable
使用列名进行分配值

insertInto
按照位置进行1对1

五.聚合后的分区数

import org.apache.spark.sql.SparkSession

结果:聚合函数分区数默认200个

如果数据量小,没必要200两个分区,简直浪费。

df2.write.saveAsTable("a4")

修改为

df2.coalesce(1).write.saveAsTable("a4")

版权声明:

本文为大数据技术与架构整理,原作者独家授权。未经原作者允许转载追究侵权责任。

编辑|谭林平丶

微信公众号|import_bigdata

欢迎点赞+收藏+转发朋友圈素质三连

文章不错?点个【在看】吧!** 👇**

本文分享自微信公众号 - 大数据技术与架构(import_bigdata)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

image
皇天皇
人类起源于信仰,毁于信仰,人们在信仰的余烬里重生。
4
发布数
3
关注者
2186
累计阅读

热门教程文档

Linux
51小节
Lua
21小节
CSS
33小节
Spring Cloud
8小节
Vue
25小节
广告