clean229

88 阅读1分钟

` 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()

``