我正在使用microsoft azure HDInsight。我有以下格式的数据。
容器/文件夹/年/月/日/ file1.csv
容器/文件夹/年/月/日/ file2.csv 。 。 等等。
我使用以下查询
创建了一个带分区的外部表'drop table partition;
CREATE EXTERNAL TABLE partition (id string, event timestamp and so on)
PARTITIONED BY (year INT, month INT, day INT)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
STORED AS TEXTFILE'
获得查询提交的输出成功并创建了外部表。
然后给Alter命令添加分区。
'ALTER TABLE partition ADD PARTITION(year=2014, month=1, day=1)
LOCATION'wasb://$containerName@$storageAccountName.blob.core.windows.net/containerName/folderName/2014/01/01';'
即使在这里也没有任何错误。
然后,当我给出一个简单的select语句时,我无法从数据文件中检索任何内容。
'select * from partition where year=2014 AND month=01 AND day=01 limit 10;'
并尝试了
'select * from partition limit 10;'
select语句都没有返回任何内容。无法弄清楚出了什么问题。有什么建议吗?
答案 0 :(得分:0)
如果您的数据文件存储在Uri的blob存储中,请执行以下操作:
https://<account>.blob.core.windows.net/<container>/folderName/2014/01/01
然后你的isb:uri需要:
wasb://<container>@<account>.blob.core.windows.net/folderName/2014/01/01
或者如果这是您的群集的默认存储帐户/容器,您可以使用:
wasb:///folderName/2014/01/01
ALTER TABLE中的额外containerName
isb:上面可能通过指向实际为空的路径来解决问题。