Spark-SQL与Hive集成及数据分析实践

一、Spark-SQL连接Hive的配置

Spark-SQL支持与Hive无缝集成,可通过以下方式操作Hive:

  1. 内嵌Hive:无需额外配置,直接使用,但生产环境不推荐。

  2. 外部Hive:

将`hive-site.xml`、`core-site.xml`、`hdfs-site.xml`复制到Spark的`conf/`目录。

将MySQL驱动放入`jars/`目录,重启Spark服务即可连接Hive元数据。

  1. 代码操作Hive:
  • 添加依赖`spark-hive`和`hive-exec`,配置`SparkSession`时启用Hive支持:

```scala

val spark = SparkSession.builder()

.enableHiveSupport()

.config("spark.sql.warehouse.dir", "hdfs://node01:9000/user/hive/warehouse")

.getOrCreate()

```

若遇权限问题,可设置`System.setProperty("HADOOP_USER_NAME", "node01")`。

二、实验:统计有效数据及用户分布

实验目标

统计满足条件(uid、phone、addr均非空)的有效数据条数,并找出用户数量最多的前20个地址。

实现步骤

  1. 数据预处理:

使用`get_json_object`解析JSON格式数据,提取所需字段:

```sql

SELECT

get_json_object(json_column, '$.uid') AS uid,

get_json_object(json_column, '$.phone') AS phone,

get_json_object(json_column, '$.addr') AS addr

FROM raw_table

```

  1. 过滤有效数据:

```sql

CREATE TEMPORARY VIEW valid_data AS

SELECT * FROM parsed_table

WHERE uid IS NOT NULL AND phone IS NOT NULL AND addr IS NOT NULL

```

  1. 统计结果:
  • 有效数据总数:

```sql

相关推荐
_Oracle3 分钟前
机器学习——常见算法
人工智能·算法·机器学习
Komorebi_99995 分钟前
Day3:监控、日志、限流、成本管控、版本灰度
大数据·运维·人工智能·大模型
ITyunwei09875 分钟前
运维团队如何抓住AI?
大数据·运维·人工智能
星辰AI8 分钟前
AI 应用安全最佳实践:保护数据和系统安全
人工智能·ai·语言模型
TE-茶叶蛋8 分钟前
AI客服聊天记录优化:从全量加载到游标分页
人工智能
AI科技星9 分钟前
基于光速螺旋拓扑模型的宇宙时空特征周期研究
人工智能·线性代数·架构·概率论·学习方法
路远_69 分钟前
Token、上下文、Prompt:大模型应用开发的三个基础概念
开发语言·人工智能
毕设做完了吗?10 分钟前
YOLO+paddlecor的智能车牌识别系统
人工智能·python·yolo·目标检测·计算机视觉
ZHW_AI课题组11 分钟前
基于Grounded-SAM-2的动态场景目标检测
人工智能·目标检测·机器学习·视觉检测