scala—将hdfs文件读入字符串的最佳方法?

wj8zmpe1  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(358)

目前,我有以下代码。

try
        {           
            FileSystem fs = FileSystem.get(config);
            StringBuilder builder=new StringBuilder();
            byte[] buffer=new byte[4096];
            int bytesRead;

            FSDataInputStream in = fs.open(new Path(fname));
            while ((bytesRead = in.read(buffer)) > 0) 
                builder.append(new String(buffer, 0, bytesRead));
            in.close();

            return builder.toString();
        }
        catch (IOException ex) 
        {
            ex.printStackTrace();
            return "";
        }

如您所见,我已经为缓冲区分配了4096个字节。现在,既然hdfs块是64mb,那么分配一个64mb大小的缓冲区会更好吗?如果我的hdfs文件大小大于64mb,那么最有效的方法是什么呢。

v1l68za4

v1l68za41#

您可以读取hdfs属性值以获得正确的缓冲区大小“dfs.stream buffer size”。

相关问题