不多解釋直接上代碼,少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()
創作不易,覺得還不錯,辛苦給個點贊👍🏻,感謝~~