我使用 CSV 创建了一个外部表,如下所示。
CREATE EXTERNAL TABLE OpenCSVSerde_CSV (
id STRING COMMENT 'from deserializer',
name STRING COMMENT 'from deserializer'
)
USING CSV
LOCATION 'abfss://[email protected]/csvtabletest';
当我将新文件添加到路径 abfss://[email protected]/csvtabletest 时,表没有刷新,我必须手动执行刷新表 OpenCSVSerde_CSV。 我尝试在集群级别设置 Spark 配置,但也没有帮助。
spark.databricks.io.cache.enabled false
有没有办法让数据自动刷新?
默认情况下,不会自动刷新表格。因此,您需要在该位置添加新文件后运行
REFRESH TABLE OpenCSVSerde_CSV
。
但是,要使此查询自动运行,请按照以下方式操作。
File Arrival
触发器设置到笔记本上。每当添加文件时,它都会触发笔记本运行上述查询。您可以参考this文档。您可以按照以下步骤使用时间表来选择第二个选项。
转到工作流程 > 作业 > 创建作业
接下来添加所需的详细信息。
Notebook
Workspace
然后点击创建。 创建完成后,您将看到如下界面。
您点击添加日程,然后选择 触发类型为
Scheduled
和计划每5分钟一次。您可以根据添加文件的频率进行更改,我给出的是每 5 分钟一次。
然后点击保存。
以下是存储帐户中的文件和选择查询的记录。
和
现在添加新的 csv 文件
newuser.csv
。
它将每 5 分钟刷新一次表,并获取在这 5 分钟间隔内添加的数据。
输出:
和