在编写 UDF 让我们说一个 EvalFunc 时,是否可以传递一个配置文件
properties = new Properties();
properties.load(new FileInputStream("conf/config.properties"));
在 Hadoop 模式下运行时?
最好的,威尔
在编写 UDF 让我们说一个 EvalFunc 时,是否可以传递一个配置文件
properties = new Properties();
properties.load(new FileInputStream("conf/config.properties"));
在 Hadoop 模式下运行时?
最好的,威尔
这里Simple Example to Read and Write files from Hadoop DFS
来自http://wiki.apache.org/hadoop/HadoopDfsReadWriteExample
也许您可以在其中找到一些有用的代码来完成您的工作。
以下是我的代码,它成功地在 hadoop 中加载了一个属性文件,我使用了Apache Commons Configuration
http://commons.apache.org/configuration/
public static void loadProperites(String path) throws ConfigurationException, IOException {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
Path inFile = new Path(path);
FSDataInputStream in = fs.open(inFile);
PropertiesConfiguration config = new PropertiesConfiguration();
config.load(in);
in.close();
}
使用 Apache Commons Configuration2 和 vfs2:
Parameters params = new Parameters();
FileBasedConfigurationBuilder<PropertiesConfiguration> builder =
new FileBasedConfigurationBuilder<>(PropertiesConfiguration.class)
.configure(params.fileBased().setFileSystem(new VFSFileSystem())
.setLocationStrategy(new FileSystemLocationStrategy())
.setEncoding("UTF-8").setFileName(propertyPath));
config = builder.getConfiguration();