2014-11-13 3 views
0

내가 나 자신에게 하이브를 가르치고 From Raw Data to Insight using HDP and Microsoft Business Intelligence

내가 HDFS의 데이터를 준비에 관리 한 튜토리얼을 사용하여 MicrsoftAzure에 HDInsight 및 HDFS에 자신을했습니다려고 노력하고 있어요 예상대로 작동하지 AzurePowershell 및 Microsoft Azure HDInsight 쿼리 콘솔을 사용하여 원시 데이터에 하이브 스키마를 생성합니다.

나는 테이블 'price_data'만들려면 아래 DDL 문을 사용하려고 :

create external table price_data (stock_exchange string, symbol string, trade_date string, open float, high float, low float, close float, volume int, adj_close float) 
row format delimited 
fields terminated by ',' 
stored as textfile 
location '/nyse/nyse_prices'; 

파일이 용기 "NYSE"용기 내의 각 BLOB 파일에있는 블롭은 이름이 'nyse_prices을 /NYSE_daily_prices_.csv '.

형식이 MSDN의 Processing data with Hive 설명서를 준수하는지 확인했습니다.

위 쿼리를 실행하면 성공적으로 실행되고 테이블이 만들어집니다.

외부 테이블이 기본 파일을 가리 키므로 각 csv 파일 내의 데이터로 채워 져야합니다.

select count(*) from price_data 

그것은이 정확하지 않은 0 반환

그러나 나는 쿼리를 실행할 때. 어떤 사람들은 제가 여기서 잘못하고있는 것을 알려줄 수 있습니까?

환호

답변

1

내가 지정한 위치가 잘못되었을 수 있습니다.

HDInsight 컨테이너를 만들 때 지정하거나 만드는 컨테이너 인 기본 컨테이너가 있습니다. 예 : 'mycontainer'. 해당 컨테이너에있는 모든 csv 파일을 nyse_prices/filename.csv 파일로 저장하면 내 위치는 '/ nyse_prices'가됩니다. 파일이 들어있는 디렉토리. '컨테이너'는이 경우 루트로 취급됩니다 ('/').

파일이 기본 컨테이너 또는 다른 저장소 계정에 없으면 'wasb : //[email protected]/nyse_prices'위치를 사용할 수 있습니다.

테스트에서 나는 기본 컨테이너에 nyse_prices /를 만들고 csv를 업로드했습니다. 그런 다음 location '/nyse_prices';을 사용하도록 쿼리를 수정했으며 이후 데이터에 대해 선택을 할 수있었습니다.