我正在从hdfs目录中读取多个文件,对于每个文件,生成的数据都使用以下格式打印:
frequencies.foreach(x => println(x._1 + ": "+x._2))
打印的数据是(对于file1.txt):
'text': 45
'data': 100
'push': 150
其他文件的键可以不同,如(file2.txt):
'data': 45
'lea': 100
'jmp': 150
密钥在所有文件中不一定相同。我希望所有文件数据都以以下格式写入.csv文件:
Filename text data push lea jmp
File1.txt 45 100 150 0 0
File2.txt 0 45 0 100 150 ....
有人能帮我找到解决这个问题的办法吗?
2条答案
按热度按时间nwlls2ji1#
如果你的文件不够大,你可以做没有Spark。这里是我的示例代码,csv格式是旧样式,不喜欢您预期的输出,但您可以很容易地调整它。
f45qwnt82#
我建议为目录中的所有文件创建一个Dataframe,然后使用
pivot
要相应地重新调整数据形状:您可以使用
DataFrameWriter
```df.write.csv(..)