-1

假设我将数据(用户事件)存储在 S3 或 HDFS 等分布式文件系统中。用户事件按日期存储在目录中。

案例 1 考虑 spark 作业需要读取一天的数据。我的理解是,单个spark job会从当天目录中读取数据,并逐块读取数据,将数据提供给spark集群进行计算。逐块读取过程会是顺序的吗?

案例 2 考虑到 spark 作业需要读取数据超过一天(比如 2 天) 问题:这里的作业必须从两个单独的目录中读取数据。我是否需要启动两个单独的 spark 进程(或线程),以便可以并行执行从单独目录读取的数据?

4

1 回答 1

1

您可以通过在保存数据时对数据进行分桶和分区来实现此目的。还使用柱状的镶木地板文件格式。Spark 将应用分区修剪和谓词下推来减少为查询读取的数据量。使用多个执行器和多个分区将有助于并行处理数据。

于 2020-01-13T13:37:30.137 回答