【发布时间】:2019-02-05 08:53:33
【问题描述】:
我想使用 Apache Spark 从/向 HDFS 读取/写入协议缓冲区消息。我找到了这些建议的方法:
1) 使用 Google 的 Gson 库将 protobuf 消息转换为 Json,然后通过 SparkSql 读取/写入它们。这个解决方案在this link 中有解释,但我认为这样做(转换为 json)是一项额外的任务。
2) 转换为 Parquet 文件。这种方式有parquet-mr 和sparksql-protobuf github 项目,但我不想要parquet 文件,因为我总是使用所有列(不是某些列),这样Parquet 格式不会给我任何收益(至少我想想)。
3)ScalaPB。可能这就是我要找的。但在 scala 语言中,我对此一无所知。我正在寻找基于 java 的解决方案。 This youtube video 介绍 scalaPB 并解释如何使用它(针对 scala 开发者)。
4)通过使用序列文件,这是我正在寻找的,但没有发现任何相关内容。所以,我的问题是:如何将 protobuf 消息写入 HDFS 上的序列文件并从中写入?任何其他建议都会很有用。
5) 通过 Twitter 的 Elephant-bird 库。
【问题讨论】:
标签: apache-spark hdfs protocol-buffers sequencefile