我有一个包含 ORC 文件的目录。我正在使用下面的代码创建一个 DataFrame
var data = sqlContext.sql("SELECT * FROM orc.`/directory/containing/orc/files`");
它返回具有此模式的数据框
[_col0: int, _col1: bigint]
预期的架构在哪里
[scan_nbr: int, visit_nbr: bigint]
当我查询镶木地板格式的文件时,我得到了正确的架构。
我是否缺少任何配置?
添加更多细节
这是 Hortonworks Distribution HDP 2.4.2(Spark 1.6.1、Hadoop 2.7.1、Hive 1.2.1)
我们没有更改 HDP 的默认配置,但这绝对不同于普通版本的 Hadoop。
数据由上游 Hive 作业写入,一个简单的 CTAS(创建 TABLE 示例 STORED AS ORC as SELECT ...)。
我在 CTAS 使用最新的 2.0.0 配置单元生成的文件上对此进行了测试,它保留了 orc 文件中的列名。