【发布时间】:2015-02-02 11:12:25
【问题描述】:
我必须实现一个 CSV 文件转换器才能在 hadoop 集群上运行。主要线路是:
- 我在 hdfs 上有一堆 csv 文件,内容随意。
- 我知道如何使用 java 代码将它们转换为“标准”(即具有指定行)。
- 转换需要一些参数(大约 10 或 15 个),每个文件都不同。
- 我不介意要分段的输出文件。
- 但我希望它们有一个
input-filename[##].csv名称来区分它们以供以后处理/可视化。
我的问题是:最好的方法是什么?
作为 hadoop 的新手,我正在考虑使用 map reduce 来执行此操作,但我对输出格式有疑问。另一方面,我可以使用 spark(在 scala 中使用我的 java 代码)。编码似乎很容易,但我不知道该怎么做。
非常感谢(更多)有经验的用户对要实施的主要任务提出意见。
【问题讨论】:
-
您的问题有点含糊,因为这在很大程度上取决于您的集群当前安装了哪些工具、您的 CSV 文件的大小、您是经常运行这项工作还是只运行一次。当然 MapReduce 在这里并不是很有用,因为你没有任何东西可以键入。您可以编写一个独立的映射器类。然而,这似乎过于复杂。根据您所说的,我会选择 Pig,因为它是轻量级的,并且可能是最快的编码。为这么简单的事情编写大量 Java 是没有意义的。
-
你说得对,我说的太含糊了,但这是因为我不知道哪些信息是相关的。我把 pig 放在一边,因为转换不是那么简单,而且我已经有了它的代码。
-
啊,如果你已经有代码并且可以访问 Spark,那就去吧。