【发布时间】:2017-08-29 01:30:45
【问题描述】:
我有一堆存储在 AWS S3 中的大气数据,我想使用 Apache Spark 进行分析,但是在将其加载到 RDD 时遇到了很多麻烦。我已经能够在网上找到示例来帮助解决问题的各个方面:
-使用 h5py 通过h5py.File(filename) (https://hdfgroup.org/wp/2015/03/from-hdf5-datasets-to-apache-spark-rdds/) 读取本地存储科学数据文件
-boto/boto3 通过get_contents_as_string()
-通过keys.flatMap(mapFunc)将一组文本文件映射到一个RDD
但我似乎无法让这些部分一起工作。具体来说——你如何从 s3 加载 netcdf 文件(使用 boto 或直接,不附加到使用 boto),然后使用 h5py?或者您可以将netcdf文件视为二进制文件并将其作为二进制文件加载并使用sc.BinaryFile(binaryFile)映射到rdd?
这里有几个类似的问题没有得到完全回答:
【问题讨论】:
-
你能否将 netcdf 文件视为二进制文件并将其加载为二进制文件 - 据我所知答案是否定的。
hpy5直接使用 C 客户端,不支持缓冲区 (BytesIO)。 S3Fs 无忧get,可用于从S3 复制到本地文件系统,然后使用h5py访问。 -
感谢@zero323,查找s3fs界面
标签: amazon-web-services apache-spark boto hdf5 netcdf