Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 将scala中的单列数据集转换为多列数据集_Apache Spark_Dataset - Fatal编程技术网

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的变量