java—在s3sparksql中从多个日期文件夹加载orc数据

kdfy810k  于 2021-05-29  发布在  Spark
关注(0)|答案(0)|浏览(141)

我正在尝试用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]};

有人能告诉我我做错了什么吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题