问题如下:
使用 Cygnus 0.2.1 创建表后,尝试从 Hive 中选择列时收到 MapReduce 错误。如果我们看到 Cygnus 在 hadoop 中创建的文件,我们可以看到使用的格式是 JSON。这个问题没有出现在以前版本的 Cygnus 中,因为它正在创建 CSV 格式的 hadoop 文件。
为了测试它,我留下了从每种格式创建的 2 个表。您可以使用以下查询比较并查看错误:
SELECT entitytype FROM fiware_ports_meteo; (it fails, created with 0.2.1 in JSON format)
SELECT entitytype FROM fiware_test_table; (it works, created with 0.2 in CSV format)
HDFS文件的路径分别是:
/user/fiware/ports/meteo
/user/fiware/testTable/
我怀疑错误来自 MapReduce 作业解析 JSON 文件,因为 CSV 格式按预期工作。
如何避免这个问题?