如您所见,这是 ADF 中复制活动中数据类型的常规列映射,我们可以在其中将数据类型、列名称等从源更改为目标。
如果我想在databricks中进行相同的设置,就像我需要将Id列与CustomerID映射一样,如何实现这一点,因为我只知道如果架构匹配,如何从SQL服务器读取表以及如何将表写入SQL服务器。但这里我需要一个自定义映射,以便所有列都可以从源架构正确填充到目标架构。
我知道我可以在写入 Target 之前将列重命名为 Target。这是一种非常手动的方式,并且肯定需要一种更有效和自动化的方式,一种通用函数,以便我也可以将该函数用于所有其他表。
您可以按照以下步骤映射列并复制数据,如下所示:
这是我的示例源数据框:
id | 名字 | 最后修改时间 |
---|---|---|
1 | AA | 2024-04-10 |
2 | BB | 2024-04-11 |
3 | 抄送 | 2024-04-12 |
和示例目标数据框:
客户ID | 姓氏 | 修改日期 |
---|---|---|
您可以使用下面的代码来映射列并复制数据:
target_df = source_df \
.withColumn("CustomerId", source_df["id"]) \
.withColumn("lastname", source_df["name"]) \
.withColumn("modified_date", source_df["lastmodified"]) \
.drop("id", "name", "lastmodified")
或者:
target_df = source_df.select(
source_df["id"].alias("CustomerId"),
source_df["name"].alias("lastname"),
source_df["lastmodified"].alias("modified_date")
)
上面的代码执行后,target_df如下:
客户ID | 姓氏 | 修改日期 |
---|---|---|
1 | AA | 2024-04-10 |
2 | BB | 2024-04-11 |
3 | 抄送 | 2024-04-12 |