scala - 如何将多个文件重新组合为一个?
问题描述
我是 Spark 的初学者,我必须将存储在多个文件中的所有数据重新组合为一个。
注意:我已经使用过 Talend,我的目标是使用 Spark (scala) 做同样的事情。
示例:
文件 1:
id | attr1.1 | attr1.2 | attr1.3
1 | aaa | aab | aac
2 | aad | aae | aaf
文件 2:
id | attr2.1 | attr2.2 | attr2.3
1 | lll | llm | lln
2 | llo | llp | llq
文件 3:
id | attr3.1 | attr3.2 | attr3.3
1 | sss | sst | ssu
2 | ssv | ssw | ssx
输出希望:
id |attr1.1|attr1.2|attr1.3|attr2.1|attr2.2|attr2.3|attr3.1|attr3.2|attr3.3
1 | aaa | aab | aac | lll | llm | lln | sss | sst | ssu
2 | aad | aae | aaf | llo | llp | llq | ssv | ssw | ssx
我有 9 个关于订单、客户、项目的文件……还有几十万行,这就是我必须使用 Spark 的原因。幸运的是,数据可以与 id 绑定。
文件格式为.csv
.
最终目标:最终目标是从 Spark 生成的文件中进行一些可视化。
问题:那么,你能给我一些线索来完成这个任务吗?我看到了 RDD 或 DataFrame 的几种方法,但我完全迷失了......
谢谢
解决方案
您没有指定有关原始文件格式的任何内容,因此假设您已将它们放在数据框 f1、f2 中...您可以通过加入它们来创建统一的数据框val unified=f1.join(f2,f1("id")===f2("id")).join(f3, f1("id")===f3("id"))....
推荐阅读
- sql - 使用 R、ODBC 和 DBI 的数值超出范围
- c#-4.0 - 从 ServiceStack.Ormlite 生成的查询中删除双引号
- firebase - 具有自定义功能错误的 Firestore 规则
- parsing - iText - 是否可以解析给定宽度和高度特定区域内的文本?
- ios - Swift 4 - 使用附加信息将音频保存到文档目录
- java - 在Android java中访问和更改xml元素的值
- csv - 导入时按逗号对列进行SQL分组?
- java - Tomcat/HAproxy 请求超时
- java - 如何锁定 ConcurrentHashMap 中的键
- javascript - navigator.geolocation.getCurrentPosition() 在 Android 上的 WebView 中永远不会返回