Spark:使用scala

时间:2017-03-26 20:36:39

标签: scala csv apache-spark

我有一个格式为的csv文件:

key, age, marks, feature_n
abc, 23, 84, 85.3
xyz, 25, 67, 70.2

这里的功能数量可能会有所不同。例如:我有3个功能(年龄,标记和feature_n)。我必须将它转换为Map [String,String],如下所示:

[key,value]
["abc","age:23,marks:84,feature_n:85.3"]
["xyz","age:25,marks:67,feature_n:70.2"]

我必须将上述数据加到列'键'上的另一个数据集A上。并附加'值'数据集A中的另一列。可以将csv文件加载到具有模式的数据框中(模式由csv文件的第一行定义)。

val newRecords = sparkSession.read.option("header", "true").option("mode", "DROPMALFORMED").csv("/records.csv");

发布此消息后,我将使用数据集A加入数据框newRecords并附加'值'到数据集A的一列。

如何迭代每一行的每一列,不包括列"键"并生成格式字符串"年龄:23​​,标记:84,feature_n:85.3"来自newRecords?

我可以改变csv文件的格式,如果有帮助,可以使用JSON格式的数据。

我是Scala和Spark的新手。

1 个答案:

答案 0 :(得分:0)

我建议采用以下解决方案:

git checkout 2.0.6