是否可以从 UDF 中的分布式缓存中获取文件?
在进一步深入之前,我花了很多时间试图找到这个特定问题的答案(在 StackOverflow 和其他方面),但无法找到答案。
问题的主要症结如下:我想获取一个已经在 HDFS 上的文件,将其复制到 Pig 中的分布式缓存中,然后能够从 Java UDF 中的缓存中读取该文件。另一个问题是由于程序的设计,我无法从“EvalFunc”扩展,这可能会解决问题。
我在我的 Pig 脚本中指定,将文件路径SET mapred.cache.files '$PATH_TO_FILE_ON_HDFS'
作为SET mapped.create.symlink 'yes'
参数传递给 UDF,并尝试使用 FileSystem 和 FileReader 类来访问文件,但无济于事。
如果我可以进一步澄清这一点/提供更多相关细节,请告诉我。