DataBricks:将数据插入 Delta Table 的最快方法?

DataBricks: Fastest Way to Insert Data Into Delta Table?

我有一些 table 文件大小只有几 MB,我想将其捕获为增量表。向其中插入新数据需要非常长的时间,15 分钟以上,我对此感到惊讶。

我猜,罪魁祸首是 table 非常小;这些 table 中有 300 多列。

我尝试了以下方法,前者比后者快(不出所料(?)):(1) INSERT INTO , (2) MERGE INTO.

在将数据插入增量表之前,我应用了一些 Spark 函数来清理数据,然后最后将其注册为临时文件 table(例如,INSERT INTO DELTA_TBL_OF_INTEREST (cols) SELECT * FROM tempTable

有什么关于加速处理琐碎数据的建议吗?

如果您在将数据放入目标 table 之前使用 PySpark 执行数据转换,那么您不需要进入 SQL 级别,您可以使用append模式。

如果您使用的是注册 table:

df = ... transform source data ...
df.write.mode("append").format("delta").saveAsTable("table_name")

如果您使用的是文件路径:

df = ... transform source data ...
df.write.mode("append").format("delta").save("path_to_delta")