设为首页 加入收藏

TOP

Java实在读取HDFS写入CSV
2019-04-23 00:08:46 】 浏览:63
Tags:Java 实在 读取 HDFS 写入 CSV
版权声明:学习交流为主,未经博主同意禁止转载,禁止用于商用。 https://blog.csdn.net/u012965373/article/details/85723404
String currentDay = dateTimeUtil.currentDate();
        // 检查是否有当前日期的目录
        fsUtil.checkDirExists(new File(configUtil.readConfig("download.file.path") + currentDay));
        FSDataInputStream in = null;
        // 生成以JobID命名的目录
        String fileName = configUtil.readConfig("download.file.path") + currentDay + "/" + jobID + ".csv";
        File file = new File(fileName);
        List<List<String>> dataList = new ArrayList<>();
        try {
            String dataPath = configUtil.readConfig("offLine.data.path") + currentDay + "/" + jobID + ".csv/";
            LOG.info(dataPath);
            Path path = new Path(dataPath);
            Configuration configuration = dfsUtil.getHadoopConf();
            FileSystem hdfs = FileSystem.get(configuration);
            if (hdfs.exists(path) && hdfs.isDirectory(path)) {
                FileStatus[] srcFileStatus = hdfs.listStatus(path);
                for (FileStatus fs : srcFileStatus) {
                    if (fs.getLen() > 0) {
                        String line;
                        in = hdfs.open(fs.getPath());
                        while ((line = in.readLine()) != null) {
                            LOG.info(new String(line.getBytes(Constant.CODE_FORMAT)));
                            dataList.add(Lists.newArrayList(new String(line.getBytes())));
                        }
                    }
                }
            }
        } catch (Exception error) {
            error.getMessage();
            error.printStackTrace();
        } finally {
            org.apache.hadoop.io.IOUtils.closeStream(in);
        }
        // 处理数据
        List<String> result = new ArrayList<>();
        for (List<String> queryResultEle : dataList) {
            String dataEle = "";
            for (int i = 0; i < queryResultEle.size(); i++) {
                if ((queryResultEle.size() - 1) == i) {
                    dataEle += queryResultEle.get(i);
                } else {
                    dataEle = dataEle + queryResultEle.get(i) + "\t";
                }
            }
            result.add(dataEle);
        }
        csvUtil.exportCsv(file, result);

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Hdfs 环境搭建 下一篇聊聊HDFS的权限访问控制

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目