读取不同的架构并插入到azure中的目标中

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

我正在从镶木地板文件中读取数据并将其插入到我的目标表中。 我的情况如下

昨天收到一份文件,其中包含以下各栏

Col1 Col2 Col3
AAA  123  456

并加载到我的目标中

INSERT into target
SLEECT
Col1
Col2
Col3 
From file path

并定义了一个模式(使用structfileds)并将其加载到我的目标表中。 现在的问题是今天我收到了一个文件较少的列

Col1  Col2
 BBB    890


INSERT into target
    SLEECT
    Col1
    Col2
    Col3 
    From file path

现在,在将此数据插入到我的目标表中时,它会抛出错误,因为“字段不存在”。 文件列可能每天都会有所不同(这意味着我们也会得到更少的列) 谁能建议我如何克服这个问题。 问候, 卡蒂嘉

databricks azure-synapse
1个回答
0
投票
该字段不存在

您的第二个文件有两列,目标表有三列,这可能是在将第二个文件中的值插入目标表时出现上述错误的原因。要解决上述错误,您可以将 Col3 替换为
Null

值,如下所示: INSERT into target SELECT Col1, Col2 , Null FROM <filePath>

然后您将能够将第二个文件值放入目标表中,如下所示:

enter image description here

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