Fas*_*ous 5 import encoding hadoop unicode azure
我有一个从未知来源系统以 gunzip 压缩的文档。它是使用 7zip 控制台应用程序下载和解压缩的。该文档是一个 CSV 文件,似乎以 UTF-8 编码。
然后在压缩后立即上传到 Azure Data Lake Store。然后有一个 U-SQL 作业设置,只需将它从一个文件夹复制到另一个文件夹。此过程失败并引发值的 UTF-8 编码错误:ée
测试
我从商店下载了该文档并删除了所有记录,但带有 Azure 标记值的记录除外。在 Notepad++ 中,它将文档显示为 UTF-8。我再次将文档保存为 UTF-8 并将其上传回商店。我再次运行该过程,该过程成功,该值为 UTF-8
我在这里缺少什么?原始文档是否可能不是真正的 UTF-8?是否还有其他原因导致误报?我有点困惑。
可能性
环境/工具
USQL
只是定义架构的基本 USQL 作业然后将所有字段选择到一个新目录。除了省略标题之外,不会发生任何转换。该文件是 CSV,用逗号分隔的字符串中的双引号。无论数据类型如何,架构都是字符串。尝试的提取器是 TEXT 和 CSV,两者都设置为编码:UTF8,即使根据系统上的 Azure 文档,两者都默认为 UTF8。
其他注意事项
UTF-8 编码的文件可以选择包含字节顺序标记 (BOM)。这是一个“幻数”,用于向使用软件表明该文件是 UTF 编码的。更复杂的是,BOM 可以是大尾数法或小尾数法。
Notepad++ 使所有这些都可以通过“编码”菜单可见。我建议您在您的文件(或其精简副本)中摆弄这些内容,看看哪些(如果有的话)有效。