mar*_*nun 2 hadoop hive amazon-s3 amazon-web-services emr
我正在使用Amazon EMR.我在s3中有一些日志数据,都在同一个桶中,但在不同的子目录下,如:
"s3://bucketname/2014/08/01/abc/file1.bz"
"s3://bucketname/2014/08/01/abc/file2.bz"
"s3://bucketname/2014/08/01/xyz/file1.bz"
"s3://bucketname/2014/08/01/xyz/file3.bz"
Run Code Online (Sandbox Code Playgroud)
我正在使用 :
Set hive.mapred.supports.subdirectories=true;
Set mapred.input.dir.recursive=true;
Run Code Online (Sandbox Code Playgroud)
尝试加载"s3:// bucketname/2014/08 /"中的所有数据时:
CREATE EXTERNAL TABLE table1(id string, at string,
custom struct<param1:string, param2:string>)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://bucketname/2014/08/';
Run Code Online (Sandbox Code Playgroud)
作为回报,我得到:
OK
Time taken: 0.169 seconds
Run Code Online (Sandbox Code Playgroud)
在尝试查询表时:
SELECT * FROM table1 LIMIT 10;
Run Code Online (Sandbox Code Playgroud)
我明白了:
Failed with exception java.io.IOException:java.io.IOException: Not a file: s3://bucketname/2014/08/01
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何减少这个?
| 归档时间: |
|
| 查看次数: |
3444 次 |
| 最近记录: |