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