我是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看到了几种方法,但是我完全迷路了...
谢谢
答案 0 :(得分:1)
您没有指定任何有关原始文件格式的信息,因此假设您已将它们放在数据帧f1,f2中...您可以通过将它们val unified=f1.join(f2,f1("id")===f2("id")).join(f3, f1("id")===f3("id"))....
加入来创建统一的数据帧