Apache spark 将scala中的单列数据集转换为多列数据集
我有一个数据集,它是一个字符串数据集,它有Apache spark 将scala中的单列数据集转换为多列数据集,apache-spark,dataset,Apache Spark,Dataset,我有一个数据集,它是一个字符串数据集,它有 12348,5,233,234559,4 12348,5,233,234559,4 12349,6,233,234560,5 12350,7,233,234561,6 我想拆分这一行,并将其转换为多个列,其中显示RegionId、perliID、Date、EventId、ModelId。我如何做到这一点?你的意思是: case class NewSet(RegionId: String, PerilId: String, Date: String,
12348,5,233,234559,4
12348,5,233,234559,4
12349,6,233,234560,5
12350,7,233,234561,6
我想拆分这一行,并将其转换为多个列,其中显示RegionId、perliID、Date、EventId、ModelId。我如何做到这一点?你的意思是:
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函数更健壮一些……如果您在RDD中指定了数据,那么将其转换为dataframe非常容易
case class MyClass(RegionId: String, PerilId: String, Date: String,
EventId: String, ModelId: String)
val dataframe = sqlContext.createDataFrame(rdd,classOf[MyClass])
此数据框将包含所有列,列名称对应于clas MyClass的变量