【发布时间】:2012-11-27 18:02:49
【问题描述】:
我的项目有一个 ASCII 输入文件,我使用 pig 脚本进行 mapreducing。在此脚本中,我使用子字符串获取指定的字符间隔。我想问我是否使用java来获取字符间隔,然后将jar文件嵌入到另一个减少我的数据的猪脚本中,我的程序运行得更快吗?
【问题讨论】:
标签: java hadoop mapreduce apache-pig
我的项目有一个 ASCII 输入文件,我使用 pig 脚本进行 mapreducing。在此脚本中,我使用子字符串获取指定的字符间隔。我想问我是否使用java来获取字符间隔,然后将jar文件嵌入到另一个减少我的数据的猪脚本中,我的程序运行得更快吗?
【问题讨论】:
标签: java hadoop mapreduce apache-pig
这完全取决于您如何在 map 方法中实现字符间隔拆分。如果您知道数据,则可以优化子字符串。检查这个线程:
charAt() or substring? Which is faster?
此外,一般来说,将 jars 添加到 hadoop 集群会增加文件传输和设置内部内容(类加载器、解包等)的一些开销,但在这种情况下,jar 大小应该可以忽略不计。因此,简而言之,添加您的 java 代码来执行映射器不应增加显着的开销,但如果 pig 生成的代码不是最佳的并且您的 java 代码对于您的字符串是最佳的,则可以改善映射器阶段。
【讨论】: