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

相关推荐
用户5191495848455 分钟前
CVE-2024-10793 WordPress插件权限提升漏洞利用演示
人工智能·aigc
chaors17 分钟前
从零学RAG0x01之向量化
人工智能·aigc·ai编程
chaors20 分钟前
从零学RAG0x02向量数据库
人工智能·aigc·ai编程
陈少波AI应用笔记22 分钟前
硅谷龙虾大战技术拆解:当AI长出爪子
人工智能
冬奇Lab1 小时前
一天一个开源项目(第39篇):PandaWiki - AI 驱动的开源知识库搭建系统
人工智能·开源·资讯
大模型真好玩1 小时前
LangChain DeepAgents 速通指南(三)—— 让Agent告别混乱:Tool Selector与Todo List中间件解析
人工智能·langchain·trae
孟祥_成都2 小时前
【全网最通俗!新手到AI全栈开发必读】 AI 是如何进化到大模型的
前端·人工智能·全栈
牛奶2 小时前
AI辅助开发的基础概念
前端·人工智能·ai编程
东坡肘子2 小时前
OpenClaw 不错,但我好像没有那么需要 -- 肘子的 Swift 周报 #125
人工智能·swiftui·swift
风象南10 小时前
普通人用AI加持赚到的第一个100块
人工智能·后端