问题:
大量文件。每个文件是10MB,由json格式的记录组成,gzip。
我的代码片段正在将所有数据加载到内存中。没有必要这样做。我一次只需要几个小时的内存数据。我需要一个滑动窗口。
是否可以将火花流的“窗口”想法应用到文件中,我该怎么做?
我正在使用python
location = "s3://bucketname/xxxx/2016/10/1[1-2]/*/file_prefix*.gz"
rdd = sc.textFile(location)
答案 0 :(得分:0)
您发布的代码段实际上没有计算。 Spark执行是懒惰的,并且只在你要求结果时强制计算“{变形”,例如map
s,filter
s甚至textFile
- 例如计算RDD。
另一个注意事项是默认情况下大多数Spark操作流。如果您有300个10M json文件,那么您将获得300个单独的分区或任务。如果您愿意等待,可以在一个核心上对此数据集执行大多数RDD操作。
如果你需要一个滑动窗口,那么Spark streaming包中有很好的功能。但是你发布的片段没有任何问题!