我正在尝试用java中的sparksqlapi加载一个数据集。我在s3中的文件夹结构是
s3://my-bucket-name/prefix1/date=yyyy-mm-dd/
我在s3中有两个日期文件夹,如下所示:
s3://my-bucket-name/prefix1/date=2020-06-15/
s3://my-bucket-name/prefix1/date=2020-06-16/
我使用以下代码段加载数据集
public static Dataset<MyPOJOClass> getORCRecordDataset (SQLContext sqlContext, String setOfPath) {
Dataset<Row> rows = sqlContext.read().option("inferSchema", true).orc((setOfPath));
Encoder<MyPOJOClass> myORCRecordEncoder = Encoders.bean(MyPOJOClass.class);
Dataset<MyPOJOClass> myORCRecordDataset = rows.as(myORCRecordEncoder);
log.error("count of record in myORCRecordDataset is = {} ", myORCRecordDataset.count());
return myORCRecordDataset;
}
当我经过的时候 setOfPath
变量如下
s3://my-bucket-name/prefix1/{date=2020-06-15/,date=2020-06-16/}
上面的代码片段为我提供了正确的数据集加载。
现在,我尝试使用blob模式,正如这里解释的blob模式,我通过了 setOfPath
变量如下
s3://my-bucket-name/prefix1/{date=2020-06-[15-16]}/
这不起作用,正在引发此异常
User class threw exception: org.apache.spark.sql.AnalysisException: Path does not exist: s3://my-bucket-name/prefix1/{date=2020-06-[15-16]};
org.apache.spark.sql.AnalysisException: Path does not exist: s3://my-bucket-name/prefix1/{date=2020-06-[15-16]};
有人能告诉我我做错了什么吗?
暂无答案!
目前还没有任何答案,快来回答吧!