我正在尝试将blob数据从Azure blob存储上传到Hive表,该表具有以下格式保存在名为myblob_test.csv的.csv文件中:
以下脚本用于创建表:
CREATE TABLE IF NOT EXISTS AzureData.Events(
Day STRING,
Event_Type STRING,
Time_Stamp STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
STORED AS TEXTFILE LOCATION '/bigdatapoc1/azure-data-2/myblob_test.csv';
当我运行表create命令时,它完成而没有错误。但是当我查询:
select * from AzureData.Events;
我一无所获。所以我尝试使用以下命令上传blob文件:
LOAD DATA INPATH 'wasb://azure-data-2@bigdatapoc1.blob.core.windows.net/myblob_test.csv' INTO TABLE AzureData.Events;
我收到以下错误:
或
LOAD DATA INPATH '/bigdatapoc1/azure-data-2/myblob_test.csv' INTO TABLE AzureData.Events;
给出以下错误:
我不确定我做错了什么。有人可以指出我错过了哪一步吗?
答案 0 :(得分:1)
首先,您需要了解blob容器具有私有和公共访问权限。如果它是公共的,您的群集可以评估容器。否则,您将需要在配置过程中将Azure存储帐户添加为其他存储帐户。供应过程将存储帐户访问密钥写入站点配置文件。这样集群就可以访问容器了。要添加其他存储帐户,请参阅https://azure.microsoft.com/en-us/documentation/articles/hdinsight-provision-clusters/。
要访问blob容器,请使用以下语法: wasb [S]://@.blob.core.windows.net/ 有关详细信息,请参阅https://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-use-blob-storage/