在我的pyspark笔记本里我
1.从表中读取以创建数据框
1.聚合 Dataframe
1.写入文件夹
1.从输出文件夹创建SQL表
为了
#1. I do `spark.read.format("delta").load(path)`
#2. I do `df = df.filter.(...).groupby(...).agg(...)
#3. I do `df.write.format("delta").mode("append").save(output_folder)`
#4. I do `spark.sql(f"CREATE TABLE IF NOT EXISTS {sql_database}.{table_name} USING delta LOCATION '{path to output folder in #3}'") `
我遇到的问题是我在第3步和第4步之前和之后都有调试打印语句。然后检查输出文件夹中是否有parquet文件,以及创建SQL表时使用的Path是否正确。而且在控制台中也不例外。
但是当我尝试在SQL工具中查看查找新创建表时,却看不到它。
你能告诉我,在创建SQL表之前,我是否需要等待“写”完成?如果是,我需要做什么来等待写入完成?
1条答案
按热度按时间ozxc1zmp1#
默认情况下,
.write
是同步操作,因此步骤4将仅在步骤3完成后执行。但实际上,通过使用.saveAsTable
和path
选项,一步编写和创建一个表会更容易: