2

我必须做一些特别的事情才能用 Spark 读取 Orc 表吗?

我在 txt 和 orc 中有两个表格副本。读取 txt 表时一切正常。读取兽人表时,我没有收到任何错误,但 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 ")
4

2 回答 2

0

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

于 2016-09-13T12:51:24.900 回答
0

我不认为ORC有什么特别的。您可以在配置单元上运行查询并确保正确读取数据。空表可能是因为 hive 无法按照您定义的方式读取数据。

于 2016-09-13T19:21:31.333 回答