如何让 Apache Drill 解析包含无效 UTF8 字符的 JSON 文件

How to make Apache Drill parse a JSON file with invalid UTF8 characters

我正在尝试使用 Apache Drill 运行 对 JSON 文件进行 SELECT 查询。我收到不同文件的各种错误。所有错误都是JSON 解析错误:

第一个错误是由于某些字符的存在,例如'趨勢ç§'技å':我已经在下面尝试过:

使用以下任一方法将编码更改为 'UTF-8 with BOM':

  • 记事本++
  • iConv(shell 实用程序)

并且,您将能够使用 Apache Drill 查询它。

我用iConv把文​​件编码改成了'UTF-8',用Notepad++打开转换后的文件,Notepad++显示的编码是'UTF-8 with BOM'。因此,我使用 Notepad++ 本身将原始文件的编码更改为 'UTF-8 with BOM',它也有效。

这两个文件,一个使用 iConv 转换的文件和一个使用 Notepad++ 转换的文件(基本上,任何转换为​​ 'UTF-8 with BOM' 的文件)都可以使用 Apache Drill 进行解析。

要转换:

  • 使用 Notepad++:从菜单栏 select 编码,将其更改为 'UTF8 with BOM' 并保存文件。如果此编码未显示在编码列表中,则可能有一些插件(或其他方式)使其在 Notepad++ 中可用。
  • 使用 iConv :下载实用程序并使用以下命令 运行 它:iconv -f old-encoding -t new-encoding(在本例中为 UTF-8)file.txt > newfile.txt

注意:对于大文件,您可能需要在转换前将其拆分,因为在我的情况下,Notepad++ 无法打开 2GB 的文件,iConv 也无法转换它.