pyspark将hive数据写入Excel文件中
不多解释直接上代码,少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()
创作不易,觉得还不错,辛苦给个点赞👍🏻,感谢~~