数据准备导入数据集不会自动检测第一行中的标题



我正在将数据集从Google Cloud Storage(参数化)导入Dataprep。到目前为止,这工作得很好,我喜欢的功能之一是它会自动检测我的(应用程序/八位字节流).csv文件中的第一行是我的标头。

但是,今天我尝试导入一个新数据集,它没有检测到标题,但它自动分配了列 1、列 2...

发生了什么变化,或者为什么会这样。我已选中自动检测框并使用 UTF-8:

虽然自动检测选项通常非常好,但有时由于多种原因而失败。当字段名称包含某些字符(例如逗号、不可见字符(如零宽度非连接符、空字节)或在同一文件中使用多种不同样式的换行符时,我特别注意到这一点。

我看到的另一个情况是,数据列多于标题列。

正如您已经点击的那样,您可以使用以下代码片段来执行大致相同的操作:

rename type: header method: filter sanitize: true

。或者制作单独的食谱步骤,将第一行转换为标题,然后根据自己的喜好批量重命名。

但是,我经常发现,当自动检测在以前工作的文件上失败时,这往往是源文件存在某种问题的征兆。 我会寻找不匹配的数据,以及输出中错位的逗号,以及使用纯文本编辑器将标题和一些数据行与原始源进行比较。

当所有其他方法都失败时,您可以尝试使用CSV验证器。 。但根据我的经验,当涉及到文件的格式选项时,他们往往非常固执己见——因此,根据生成 CSV 的系统,它可能会错过任何错误或给出误报。 我有过两次自动检测在完全干净的文件上无缘无故失败的经历,因此可能由于某种原因跳过了该过程。

还应该注意的是,如果您有一个正确检测到的结构化文件,但想要还原它,您可以转到数据集详细信息,选择"..."(更多)按钮,然后选择"删除结构..."(我希望有一天,当您想向原始数据集添加结构或解决此类错误时,他们会让您做相反的事情!

祝你好运!

可以解析为 Flow 中的转换:

rename type: header method: filter sanitize: true

最新更新