【问题标题】:Iterate through S3 files in Spark在 Spark 中迭代 S3 文件
【发布时间】:2017-03-15 15:54:03
【问题描述】:

问题:
大量文件。每个文件为 10MB,由 json 格式的记录组成,gzip 压缩。

我的 sn-p 正在将所有数据加载到内存中。没有必要这样做。我一次只需要几个小时的内存数据。我需要一个滑动窗口。

是否可以将火花流中的“窗口”想法应用到文件中,我将如何做到这一点?

我正在使用 python

location = "s3://bucketname/xxxx/2016/10/1[1-2]/*/file_prefix*.gz"
rdd = sc.textFile(location)

【问题讨论】:

  • 如果你知道需要加载哪些数据,你可以使用filter,因为spark中的所有转换都是惰性的,它只加载过滤后的数据。
  • 好的,这真的很有帮助。我仍然认为我最终仍需要应用某种窗口。我有相当多的数据。压缩后的大小约为 300GB。
  • Spark 流支持滑动窗口功能,请查看spark.apache.org/docs/latest/…
  • 你想在 Spark Core 中应用滑动窗口的概念吗?
  • 不知道能不能用ssc.textFileStream("/file/path")

标签: python apache-spark iterator sliding-window


【解决方案1】:

您发布的 sn-p 实际上没有计算。 Spark 执行是惰性的,并且仅在您要求结果时强制计算“转换”,例如maps、filters 甚至textFiles——例如计算 RDD。

另一个注意事项是默认情况下大多数 Spark 操作都是流式传输的。如果您有 300 个 10M json 文件,您将获得 300 个单独的分区或任务。如果您愿意等待,您可以在一个核心上对该数据集执行大多数 RDD 操作。

如果您需要一个滑动窗口,那么Spark streaming 包中有很好的功能。不过你发的sn-p没有问题!

【讨论】:

    猜你喜欢
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 2013-09-24
    • 2017-06-13
    • 2021-11-07
    • 2018-09-04
    相关资源
    最近更新 更多