` from pyspark.sql import SparkSession from pyspark.sql.functions import col
初始化 SparkSession
spark = SparkSession.builder.appName("ListTables").getOrCreate()
设置数据库名
database_name = "imh_pbg"
使用 SQL 查询获取所有表名
table_names_df = spark.sql(f"SHOW TABLES IN {database_name}")
创建一个空列表来存储符合条件的表名
table_names_list = []
使用循环来筛选出表名结尾是特定日期的表
for row in table_names_df.collect(): table_name = row[0] # 假设表名是查询结果的第一列 if table_name.endswith("20231116"): table_names_list.append(table_name)
将表名列表保存为 CSV 文件
假设你已经设置了文件路径
path = "path_to_your_csv_file/20231116.csv" table_names_df = spark.createDataFrame(table_names_list, ["table_name"]) table_names_df.to_csv(path, header=False, index=False, mode="overwrite")
关闭 SparkSession
spark.stop() `
# 初始化 SparkSession
spark = SparkSession.builder.appName("ExportTablesToCSV").getOrCreate()
# 设置数据库名
database_name = "imh_pbg"
# 设置表名列表
table_names = ['111', '222', '333']
# 设置 CSV 文件保存的根路径
csv_root_path = "path_to_your_csv_directory"
# 循环遍历表名列表,为每个表创建 CSV 文件
for table_name in table_names:
# 构建 SQL 查询语句
query = f"SELECT * FROM {database_name}.{table_name}"
# 使用 SQL 查询获取表内容
df = spark.sql(query)
# 构建 CSV 文件的完整路径
csv_file_path = f"{csv_root_path}/{table_name}.csv"
# 将 DataFrame 保存为 CSV 文件
df.write.csv(csv_file_path, mode="overwrite")
# 关闭 SparkSession
spark.stop()
``