带有 CSV 的外部表未自动刷新

问题描述 投票:0回答:1

我使用 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

有没有办法让数据自动刷新?

hive databricks azure-databricks databricks-unity-catalog
1个回答
0
投票

默认情况下,不会自动刷新表格。因此,您需要在该位置添加新文件后运行

REFRESH TABLE OpenCSVSerde_CSV

但是,要使此查询自动运行,请按照以下方式操作。

  1. File Arrival
    触发器设置到笔记本上。每当添加文件时,它都会触发笔记本运行上述查询。您可以参考this文档。
  2. 您还可以根据添加文件的频率添加计划以在特定时间间隔内运行笔记本。

您可以按照以下步骤使用时间表来选择第二个选项。

转到工作流程 > 作业 > 创建作业

接下来添加所需的详细信息。

enter image description here

  1. 任务名称:为任务命名
  2. 类型
    Notebook
  3. 来源
    Workspace
  4. Path 给出具有刷新表查询的笔记本的路径
  5. 集群:选择要运行的集群

然后点击创建。 创建完成后,您将看到如下界面。

enter image description here

您点击添加日程,然后选择 触发类型

Scheduled
计划每5分钟一次。您可以根据添加文件的频率进行更改,我给出的是每 5 分钟一次。 然后点击保存。

enter image description here

以下是存储帐户中的文件和选择查询的记录。

enter image description here

enter image description here

现在添加新的 csv 文件

newuser.csv
。 它将每 5 分钟刷新一次表,并获取在这 5 分钟间隔内添加的数据。

输出:

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.