小编Ram*_*lur的帖子

ORC文件上的Spark SQL不会返回正确的架构(列名称)

我有一个包含ORC文件的目录.我正在使用以下代码创建一个DataFrame

var data = sqlContext.sql("SELECT * FROM orc.`/directory/containing/orc/files`");
Run Code Online (Sandbox Code Playgroud)

它返回此架构的数据框

[_col0: int, _col1: bigint]
Run Code Online (Sandbox Code Playgroud)

预期架构在哪里

[scan_nbr: int, visit_nbr: bigint]
Run Code Online (Sandbox Code Playgroud)

当我查询镶木地板格式的文件时,我得到了正确的架构.

我错过了任何配置吗?

添加更多细节

这是Hortonworks Distribution HDP 2.4.2(Spark 1.6.1,Hadoop 2.7.1,Hive 1.2.1)

我们没有更改HDP的默认配置,但这绝对不同于Hadoop的普通版本.

数据由上游Hive作业写入,一个简单的CTAS(CREATE TABLE样本存储为ORC作为SELECT ...).

我在CTAS使用最新的2.0.0配置单元生成的文件上对此进行了测试,并保留了orc文件中的列名称.

apache-spark apache-spark-sql apache-hive

3
推荐指数
1
解决办法
4892
查看次数