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

相关推荐
Raink老师1 小时前
【AI面试临阵磨枪】详细解释 Transformer 架构的核心组件与工作流程。
人工智能·深度学习·transformer·ai 面试·ai 应用开发
qcx231 小时前
【AI Agent实战】OpenClaw 安全加固完全指南:安全攻击手段与五步防护实践(2026最新)
人工智能·安全
AnnyYoung2 小时前
单细胞转录组+空间转录组+深度学习的意义
深度学习·数据分析
码农小白AI2 小时前
AI报告审核进入技术驱动时代:IACheck如何从规则引擎走向深度学习,构建检测报告审核“技术矩阵”
人工智能·深度学习
song150265372982 小时前
视觉检测设备:自动识别缺陷、尺寸、瑕疵、装配错误,一键全检
人工智能·计算机视觉·视觉检测
智能化咨询2 小时前
(163页PPT)某著名企业K3生产制造售前营销指导方案P164(附下载方式)
大数据·人工智能
Zzj_tju2 小时前
大语言模型技术指南:SFT、RLHF、DPO 怎么串起来?对齐训练与关键参数详解
人工智能·深度学习·语言模型
金智维科技官方2 小时前
RPA技术赋能电信运营商话单稽核:金智维如何驱动高精度自动化转型
人工智能·自动化·数字化·rpa·智能体·电信
2501_948114243 小时前
2026模型能力分化加剧:多模型聚合架构的技术解析与工程落地思考
人工智能·ai·chatgpt·架构
新知图书3 小时前
LangGraph中的记忆存储
人工智能·langgraph·智能体设计·多智能体设计