【发布时间】:2015-04-25 11:46:05
【问题描述】:
我有一个存储在 S3 存储桶中的大型数据集,但它不是单个大文件,而是由许多(准确地说是 113K)单独的 JSON 文件组成,每个文件包含 100-1000 个观察值。这些观察不是最高级别的,但需要在每个 JSON 中进行一些导航才能访问。 IE。 json["interactions"] 是一个字典列表。
我正在尝试使用 Spark/PySpark(1.1.1 版)来解析和减少这些数据,但我无法找到将其加载到 RDD 中的正确方法,因为它不是所有记录 > 一个文件(在这种情况下我会使用 sc.textFile,虽然这里增加了 JSON 的复杂性),也不是每个记录 > 一个文件(在这种情况下我会使用 sc.wholeTextFiles)。
我最好的选择是使用 sc.wholeTextFiles,然后使用地图(或者在这种情况下是 flatMap?)将多个观察结果从存储在单个文件名键下提取到它们自己的键?或者有没有更简单的方法可以做到这一点,我错过了?
我在这里看到了建议只对通过 sc.textFile 加载的所有文件使用 json.loads() 的答案,但这似乎对我不起作用,因为 JSON 不是简单的最高级别列表.
【问题讨论】:
-
我遇到了类似的问题。如果有解决方案,请告诉我。我刚开始尝试 pyspark,我在 s3 中有很多 json 文件要分析
标签: json amazon-s3 apache-spark pyspark