pyspark - 使用 pyspark 联合 Delta Lake 表
问题描述
我在 Delta Lake 中存储了多个表,所有表都具有相同的模式。我想使用 unionByName 创建一个数据框。
当前未优化的代码:
from functools import reduce
import os
filelist = [x for x in os.listdir(DELTA_LAKE_FOLDER)]
def load_raw_data(filelist):
l = []
for f in filelist:
l.append(spark.read.format("delta").load(DELTA_LAKE_FOLDER + "/{}".format(f)))
return reduce(DataFrame.unionByName, l)
# Save as a single table (probably not needed if I can batch read efficiently)
load_raw_data(filelist).write.format('delta').save(DELTA_LAKE_FOLDER + "union_dataframe")
查看文档,您似乎无法像使用 csv 格式那样使用 /* 来读取多个 Delta Lake 表。谢谢
解决方案
推荐阅读
- kubernetes - 我在使用 kubectl 构图时遇到困难
- mysql - 计算数据集的准确性
- javascript - 拒绝将字符串评估为 JavaScript,因为“unsafe-eval”不是允许的来源
- r - 比较三列对并保留第四列的最新时间戳
- python - 使用 pypdf2 和电子邮件合并多个 PDf
- jquery - Jquery Bootstrap Accordion 常见问题解答 搜索案例
- sql - 使用 SSIS 将数据从 Excel 导入和更新到 AWS SQL Server
- javascript - 追加功能不适用于更改功能 jquery
- postgresql - PG_DUMP 跳过 PG_LARGEOBJECT 中的某些项目?
- c - 如何根据主要参数打印正方形