pyspark将hive数据写入Excel文件中

不多解释直接上代码,少python包的自己直接下载

python 复制代码
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
from pyspark.sql import SparkSession
import pandas as pd
import os

# 初始化 SparkSession 并启用 Hive 支持
spark = SparkSession.builder \
    .appName("select_hive_data_to_xlsx") \
    .master("yarn") \
    .config("spark.sql.warehouse.dir", "hdfs://1.1.1.1:4007/aaa/hive/warehouse") \
    .enableHiveSupport() \
    .config("spark.yarn.queue", "default") \
    .config("spark.executor.instances", "10") \
    .config("spark.executor.memory", "5g") \
    .config("spark.executor.cores", "4") \
    .config("spark.driver.memory", "6g") \
    .config("spark.driver.cores", "5") \
    .config("spark.hadoop.fs.defaultFS", "hdfs://1.1.1.1:4007") \
    .config("spark.hadoop.fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem") \
    .config("spark.hadoop.fs.file.impl", "org.apache.hadoop.fs.LocalFileSystem") \
    .config("spark.hadoop.fs.hdfs.impl.disable.cache", "true") \
    .getOrCreate()

# 读取 Hive 表
df = spark.sql("\
select \
col_1,col_2 \
from tmp.tmp_1")

# 将 DataFrame 写入 CSV
df.write.csv("hdfs://1.1.1.1:4007/data/tmp/tmp_1.csv", header=True)

# 读取 HDFS 上的 CSV 数据
df = spark.read.option("encoding", "utf-8").csv("hdfs://1.1.1.1:4007/data/tmp/tmp_1.csv", header=True, inferSchema=True)

# 将 Spark DataFrame 转换为 Pandas DataFrame
pandas_df = df.toPandas()

# 将 Pandas DataFrame 写入本地的 Excel 文件
pandas_df.to_excel("/data/tmp/tmp_1.xlsx", index=False)

# 停止 SparkSession
spark.stop()

创作不易,觉得还不错,辛苦给个点赞👍🏻,感谢~~

相关推荐
IVEN_18 小时前
只会Python皮毛?深入理解这几点,轻松进阶全栈开发
python·全栈
Ray Liang19 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
AI攻城狮19 小时前
如何给 AI Agent 做"断舍离":OpenClaw Session 自动清理实践
python
千寻girling19 小时前
一份不可多得的 《 Python 》语言教程
人工智能·后端·python
AI攻城狮1 天前
用 Playwright 实现博客一键发布到稀土掘金
python·自动化运维
曲幽1 天前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio
孟健2 天前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞2 天前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
曲幽2 天前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers