当 csv 文件被额外的列扩展时更新数据模型

Posted

技术标签:

【中文标题】当 csv 文件被额外的列扩展时更新数据模型【英文标题】:Update data model when csv files get extended by extra columns 【发布时间】:2021-11-22 18:35:00 【问题描述】:

我在 Power BI 桌面版中有一个从几个 csv 和 Excel 文件加载的数据模型。 csv 文件是从数据库中导出的。在我开始对表之间的关系进行建模、建立 DAX 日历和一些度量之后,我们收到了一些 .csv 文件的更新版本,这些文件现在扩展了一些额外的列。

我使用 Python 将列恢复为原始顺序并尝试“从数据源更新”。将列恢复到原始顺序后,导入现在运行没有问题。但问题是新列无法识别并且它们没有显示在表格中。我能做什么?

【问题讨论】:

【参考方案1】:

假设导入像 powerquery 一样工作,找到第一行代码的 ,columns=6, 部分,然后将其删除

所以

Source = Csv.Document(File.Contents("C:\temp2\data.csv"),[Delimiter=",", Columns=6, Encoding=1252, QuoteStyle=QuoteStyle.None]),

变成

Source = Csv.Document(File.Contents("C:\temp2\data.csv"),[Delimiter=",",  Encoding=1252, QuoteStyle=QuoteStyle.None]),

【讨论】:

谢谢!我会试试这个。我是否也有可能跳过使用 Python 对列进行重新排序?我的意思是从新的 csc 文件更新数据模型,与之前的列顺序无关? 我不知道为什么在引入它们时列的顺序很重要。尝试不使用 非常感谢!!!!你帮了我很多。现在它也可以在没有事先重新排序列的情况下工作。我已经在 Microsoft Power BI 论坛中询问过;但是没有人可以提供帮助。最后一件事:你能解释一下,为什么会这样?在我的例子中,“columns=14”正确地表示了更新文件中的列数。因此,不确定为什么这个明显正确的设置会导致问题。也许我也对步骤的时间顺序感到困惑。预览表是正确的,M 语法包含正确的列数,但导入的列数较少。 对不起。对此没有任何见解。如果有 14 列,则应导入 14 列

以上是关于当 csv 文件被额外的列扩展时更新数据模型的主要内容,如果未能解决你的问题,请参考以下文章

熊猫读取的csv返回额外的未知列

当 SQL Server 表中的列“createdDate”从现在起经过 90 天后,如何更新其具有数百万行的列?我们可以使用触发器吗?

Laravel - 从数据透视表中获取额外的列值

由于额外的列值,尝试使用 pandas Python 读取 csv 时出错

Magento 数据流加载 CSV 文件的时间过长

由于一个数据集中的列较长,合并会附加额外的值吗?