Apache Drill无法读取分区的镶木地板文件

时间:2016-05-29 18:20:24

标签: apache-spark hdinsight apache-drill

我在azure blob存储上创建了一个在HD Insight上使用Apache Spark的镶木地板文件结构。 这是结构:

 /root
      /sitename=www.site1.com
        /datekey=20160101
          log-01-file.parquet
      /sitename=www.site2.com
        /datekey=29160192

我们希望使用Apache Drill来运行这个镶木地板结构的查询,但我们发现了一些问题。

运行此查询时

SELECT datekey FROM azure.root.`./root` WHERE sitename='www.mysite.com' GROUP BY datekey

我们收到此错误

"org.apache.drill.common.exceptions.UserRemoteException: SYSTEM ERROR: NumberFormatException: www.trovaprezzi.it Fragment 2:2"

可能是错误的原因是什么?

同样,当运行没有WHERE子句的查询时,似乎分区键被视为空值。

SELECT sitename, COUNT(*) as N FROM azure.root.`./root` GROUP BY sitename

|sitename|N
|NULL    |100000|

有没有人尝试过这个问题? 任何帮助都将非常感激。

由于 罗布

2 个答案:

答案 0 :(得分:0)

HDInsight今天不支持Drill。 Hive(在Tez上)也应该能够利用Parquet格式,也许你可以试试呢?

答案 1 :(得分:0)

在写这篇文章的时刻,1.6似乎以这种方式运作。

无论您使用什么分区方案,DRILL都会使用:dir0,dir1等等来对目录结构进行校验。

例如,如果我们按主机名和日期对数据进行分区,则获取

| DIR0 | DIR1 | ... |主机1 | 20160101 | .... |主机2 | 20160101 | ...