Spark:java api读取hdfs目录下多个文件
需求:
由于一个大文件,在spark中加载性能比较差。于是把一个大文件拆分为多个小文件后上传到hdfs,然而在spark2.2下如何加载某个目录下多个文件呢?
public class SparkJob {
    public static void main(String[] args) {
        String filePath = args[0];
        // initialize spark session
        String appName = "Streaming-MRO-Load-Multiple-CSV-Files-Test";
        SparkSession sparkSession = SparkHelper.getInstance().getAndConfigureSparkSession(appName);
        // reader multiple csv files.
        try {
            Dataset<Row> rows = sparkSession.read().option("delimiter", "|").option("header", false)
                    .csv(filePath).toDF(getNCellSchema());
            rows.show(10);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        try {
            Dataset<String> rows = sparkSession.read().textFile(filePath);
            rows.show(10);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        SparkHelper.getInstance().dispose();
    }
    private static Seq<String> getNCellSchema() {
        List<String> ncellColumns = "m_id,m_eid,m_int_id,.....";
        List<String> columns = new ArrayList<String>();
        for (String column : ncellColumns) {
            columns.add(column);
        }
        Seq<String> columnsSet = JavaConversions.asScalaBuffer(columns);
        return columnsSet;
    }
}
测试结果:

Spark:java api读取hdfs目录下多个文件的更多相关文章
- Java中读取某个目录下的所有文件和文件夹
		import java.io.File; public class Test1 { public static void main(String[] args) { String path=" ... 
- 使用JAVA API读取HDFS的文件数据出现乱码的解决方案
		使用JAVA api读取HDFS文件乱码踩坑 想写一个读取HFDS上的部分文件数据做预览的接口,根据网上的博客实现后,发现有时读取信息会出现乱码,例如读取一个csv时,字符串之间被逗号分割 英文字符串 ... 
- [转]读取assets目录下的数据库文件
		在做Android应用的时候,不可避免要用到数据库.但是当我们把应用的apk部署到真机上的时候,已经创建好的数据库及其里边的数据是不能随着apk一起安装到真机上的. (PS:这篇博客解决了我前面博客中 ... 
- java获取ubuntu某个目录下的所有文件信息
		java获取ubuntu某个目录下的所有文件信息 public List<VCFile> getAllFiles(String basicDirName) { List<VCFile ... 
- Python读取指定目录下指定后缀文件并保存为docx
		最近有个奇葩要求 要项目中的N行代码 申请专利啥的 然后作为程序员当然不能复制粘贴 用代码解决.. 使用python-docx读写docx文件 环境使用python3.6.0 首先pip安装pytho ... 
- 遍历并读取指定目录下的所有文件内容,写入Map集合然后输出在控制台和本地文件
		public class FileWrite { public static void main(String[] args) throws Exception { //封装数据源目录 File sr ... 
- Python读取一个目录下的所有文件
		#!/usr/bin/python # -*- coding:utf8 -*- import os allFileNum = 0 def printPath(level, path): global ... 
- Java API 读取HDFS的单文件
		HDFS上的单文件: -bash-3.2$ hadoop fs -ls /user/pms/ouyangyewei/data/input/combineorder/repeat_rec_categor ... 
- java 实现读取某个目录下指定类型的文件
		我这里是读取txt类型的文件,在指定的目录下有不同类型的文件 实现代码,读取txt类型的文件并打印出该文件的绝对路径 package com.SBgong.test; import java.io.F ... 
随机推荐
- python接口自动化测试三:代码发送HTTP请求
			get请求: 1.get请求(无参数): 2.get请求(带参数): 接口地址:http://japi.juhe.cn/qqevaluate/qq 返回格式:json 请求方式:get post 请求 ... 
- mvc中简单的异常记录
			说明:异常处理 1.1 在WebApp的Model中 添加异常处理类 继承于HandleErrorAttribute using System; using System.Collections.Ge ... 
- VMvare虚拟机如何删除安装的ubuntu操作系统
			VMvare虚拟机如何删除安装的ubuntu操作系统呢??? 这个问题其实在我刚开始接触虚拟机和ubuntu操作系统的时候对于如何删除操作系统是一件很苦恼的事情,因为按照书本的步骤,根本看不懂如何操作 ... 
- Struts2(接受表单参数)请求数据自动封装和数据类型转换
			Struts2请求数据自动封装: (1)实现原理:参数拦截器 (2)方式1:jsp表单数据填充到action中的属性: 普通的成员变量,必须给set,get可以不给的. 注意点,A ... 
- ActiveMQ的应用实例
			一.部署和启动ActiveMQ 去官网下载:http://activemq.apache.org/ 我下载的是apache-activemq-5.12.0-bin.tar.gz, 解压到本地目录,进入 ... 
- P2484 [SDOI2011]打地鼠
			差分 代码: #include <bits/stdc++.h> using namespace std; #define INF 1999999999 ][],b[][],c[][]; i ... 
- openstack学习-nove计算节点部署(五)
			nova-compute一般运行在计算节点上,通过message Queue接收管理VM的生命周期 nova-compute通过Libvirt管理KVM,通过XenAPI管理Xen等 一.安装Open ... 
- python小知识-属性查询优先级(如果有同名类属性、数据描述符、实例属性存在的话,实例>类>数据描述符)
			https://www.cnblogs.com/Jimmy1988/p/6808237.html https://segmentfault.com/a/1190000006660339 https:/ ... 
- chrome浏览器调试工具你会使用吗?
			浏览器调试工具使用总结 一. console使用 console.table(),可以把对象输出成表格的形式,直观的观察数据. console.dir(),可以直观观察dom元素的对象形式 二. $的 ... 
- 16,EasyNetQ-群集支持
			EasyNetQ支持RabbitMQ群集,无需部署负载均衡器. 只需在连接字符串中列出群集的节点... var bus = RabbitHutch.CreateBus("host=ubunt ... 
