2016-05-29 55 views
0

我已经在azure blob存储上创建了具有HD Insight上Apache Spark的地板文件结构。 这是结构:Apache Drill无法读取分区的实木复合地址文件

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

我们要使用Apache钻才能运行此反对票木结构查询,但我们发现有一些问题。

当运行这个查询

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| 

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

感谢 罗布

回答

0

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

+0

我在我的个人笔记本上使用Drill。在Drill文档中,我看到支持azure blob存储。我的问题是,我无法阅读Drill中带有火花的分区。 –

+0

亲爱的所有人,是否有人在亚马逊S3或本地文件系统上尝试类似的思考? –

+0

我也尝试在本地钻取实例上使用桌面PC上的镶木地板文件,但他获得了镶木地板分区的空值(XXX = yyy目录)。 有没有人试验过这个问题(解决得更好) 谢谢 –

0

在撰写本文后的练习时间1.6似乎这样工作。

无论分区方案,你会用钻头将CAL您使用分区之前的目录结构:DIR0,DIR1,etc.etc ..

举例来说,如果我们的主机名和日期分区我们的数据,我们得到

| dir0 | dir1 | ... | host1 | 20160101 | .... | host2 | 20160101 | ....

相关问题