一种简单的方法是拥有一种保留标头的方法。

假设您有一个file.csv,例如:

user, topic, hits

om,  scala, 120

daniel, spark, 80

3754978, spark, 1

我们可以定义一个标头类,该标头类使用第一行的解析版本:

class SimpleCSVHeader(header:Array[String]) extends Serializable {

val index = header.zipWithIndex.toMap

def apply(array:Array[String], key:String):String = array(index(key))

}

我们可以使用该标头来处理以后的数据:

val csv = sc.textFile("file.csv")  // original file

val data = csv.map(line => line.split(",").map(elem => elem.trim)) //lines in rows

val header = new SimpleCSVHeader(data.take(1)(0)) // we build our header with the first line

val rows = data.filter(line => header(line,"user") != "user") // filter the header out

val users = rows.map(row => header(row,"user")

val usersByHits = rows.map(row => header(row,"user") -> header(row,"hits").toInt)

...

请注意,header仅仅不过是助记符到数组索引的简单映射。几乎所有这些操作都可以在数组中元素的顺序位置上完成,例如user = row(0)

PS:欢迎来到Scala :-)

rdd转换成java数据结构_如何将CSV文件转换为RDD相关推荐

  1. rdd转换成java数据结构_Spark RDD转换成其他数据结构

    在Spark推荐系统编程中,一般都是通过文件加载成RDD: //在这里默认 (userId, itemId, preference) val fields = sparkContext.textFil ...

  2. truetype字体怎么转换成普通字体_将truetype字体默认转换为NV路径中的像素大小

    我正在使用NVidia Path extension(NV路径)为OpenGL引擎编写文本模块.该扩展程序允许使用trutype metrics加载系统和外部字体文件.现在,我需要能够在渲染文本时为字 ...

  3. python excel文件转换成字符串_python利用pandas将excel文件转换为txt文件的方法

    python将数据换为txt的方法有很多,可以用xlrd库实现.本人比较懒,不想按太多用的少的插件,利用已有库pandas将excel文件转换为txt文件. 直接上代码: ''' function:将 ...

  4. 将数据库字段转换成java字段

    //将数据库字段databaseField转换成java字段 static String databaseField = "id\n" +"table_name\n&qu ...

  5. java.util.Date转换成java.sql.Date

    // 获取当前的系统时间,以java.util.Date对象返回 Date dateUtil = new Date(); // 获取当前的系统时间,以时间戳返回 long l = System.cur ...

  6. JSP文件如何转换成Java文件?

    文章目录 jsp 文件如何转换成 java 文件 jsp 何时开始编译 jsp 编译后的文件存储目录 jsp 文件如何转换成 java 文件 html                         ...

  7. gson java 对象_Gson把json串转换成java实体对象

    Gson把json串转换成java实体对象的方法如下: 1.首先导入Gson的jar包,网上可以下载. java实体对象如下: public class Model { private double ...

  8. 如何将夜晚图片转化为白天图片 matlab,教你简单几步将白天图片转换成夜景图_资源库...

    摘要:教你简单几步将白天图片转换成夜景图_资源库 摘要:今天分享一个有趣的教程,教大家利用滤镜和调整图层,简单几步将白天图片变成夜景图,特别实用,还能学到一个鲜为人知的调色功能,看看赶紧练练吧. 原图 ...

  9. json字符串转成 json对象 json对象转换成java对象

    import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject; 依赖包 <dependency> ...

最新文章

  1. django--02 模板的使用
  2. C++class类(II)
  3. 【Tiny4412】EMMC启动Qt网络文件系统
  4. 扩展 日历_日历功能的拓展:Apple Watch能在屏幕上显示年日历
  5. c语言二叉树学生成绩,二叉树C语言
  6. nodejs 代替python_Python/NodeJS坑记
  7. 动手学pytorch之通俗易懂何为卷积-深度AI科普团队
  8. SF :Salesforce中,look up 和 master detail关系
  9. 《Android开发精要》读书笔记——Android的系统架构
  10. 支持多序列化的RPC框架avro-rpc
  11. uniapp编译成小程序代码过大的处理方法
  12. java文件删除失败
  13. 深圳大数据学习:怎样进行大数据的入门级学习?
  14. EMOS嵌入式仿真平台-编程环境v101
  15. 手动决战3721和雅虎助手
  16. C语言统计1到100素数的个数,统计1到100素数的个数
  17. web-天下武功唯快不破
  18. [系统安全] 五.OllyDbg和Cheat Engine工具逆向分析植物大战僵尸游戏
  19. 助力PAT甲级/乙级取得满分的小技巧,STL容器
  20. java毕业生设计宠物医院管理计算机源码+系统+mysql+调试部署+lw

热门文章

  1. Vue开发中有着原声app效果的滚动的第三方插件better-scroll在github的上面的运用方法及地址
  2. 9路棋盘java代码_Java ServiceContext类代码示例
  3. mysql数据没有同步更新_解决MySQL的主从数据库没有同步的两种方法
  4. android.os.binderproxy cannot be cast to,Android服务android.os.BinderProxy错误
  5. matlab 分号;_MATLAB使用教程(二)—新手来看
  6. 深度学习之早停策略EarlyStopping以及保存测试集准确率最高的模型ModelCheckpoint
  7. firl 函数 matlab,经典matlab信号处理学习
  8. mysql表打包到程序中_C#/winform程序打包布署 如何把SQL 数据库 一起打包进去?
  9. 于金刚消息引擎服务器,基于MQTT的安全通信服务器的研究与实现
  10. unityui等比例缩放_Unity 4.6-如何针对每种分辨率将GUI元素缩放到合适的大小