Spark无法读取Orc表(返回空表)

时间:2016-09-13 12:37:26

标签: python apache-spark orc

我是否必须做一些特别的事情才能用Spark阅读Orc表?

我在txt和orc中有两个表副本。读取txt表时一切正常。当读取orc表时,我没有错误但是spark返回一个空表。

这是我在python中的代码:

import pyspark
CONF = (pyspark.SparkConf().setMaster("yarn-client"))
sc = pyspark.SparkContext(conf = CONF)

from pyspark.sql import HiveContext

sq = HiveContext(sc)
df = sq.sql(""" select * from sample_07 """)

print df.show(10)

更新

如果我指定存储在sample_07中的数据的路径并将其注册为临时表,它可以工作:

sq = HiveContext(sc)
orcFile = sq.read.format("orc").load("/user/some/sample_07/")
orcFile.registerTempTable("tempTableName");
df = sq.sql("SELECT * FROM tempTableName  LIMIT 10 ")

2 个答案:

答案 0 :(得分:0)

您可以尝试在表名之前添加数据库名称作为a.table_name

答案 1 :(得分:0)

我认为ORC没有任何具体内容。你可以在配置单元上运行查询并确保正确读取数据。空表可能是因为配置单元无法按照您定义的方式读取数据。