我有一个数据集,它是String的DataSet,它有数据
12348,5,233,234559,4
12348,5,233,234559,4
12349,6,233,234560,5
12350,7,233,234561,6
我想拆分这一行并将其转换为多个列,分别是RegionId,PerilId,Date,EventId,ModelId。我如何实现这一目标?
答案 0 :(得分:1)
case class NewSet(RegionId: String, PerilId: String, Date: String, EventId: String, ModelId: String)
val newDataset = oldDataset.map(s:String => {
val strings = s.split(",")
NewSet(strings(0), strings(1), strings(2), string(3), strings(4)) })
当然你应该让lambda函数更加健壮......
答案 1 :(得分:0)
如果您拥有在RDD中指定的数据,那么将其转换为数据帧非常容易。
case class MyClass(RegionId: String, PerilId: String, Date: String,
EventId: String, ModelId: String)
val dataframe = sqlContext.createDataFrame(rdd,classOf[MyClass])
此数据框将包含列名称的所有列对应于clas MyClass的变量。