我是斯卡拉的新手。我会尽量保持清晰。我有以下代码:
case class Session (bf: Array[File])
case class File(s: s, a: Option[a], b: Option[b], c: Option[c])
case class s(s1:Int, s2:String)
case class a(a1:Int, a2:String)
case class b(b1:Int, b2:String)
case class c(c1:Int, c2:String)
val x = Session(...) // some values here, many session objects grouped in a dataset collection i.e. Dataset[Sessions]
谢谢
答案 0 :(得分:1)
Spark DataSet
的工作原理类似于常规的Scala集合。它具有一个toDF()
操作,可以从中创建一个DataFrame
。现在,您只需要使用不同的转换从其中提取正确的数据即可。
flatMap
放入DataSet
的{{1}} File
中的每个filter
为非空File
a
其余map
至File
a
创建一个toDF()
在代码中,这将是:
DataFrame
在Scala中,您还可以将val ds: DataSet[Session] = ...
ds.flatMap(_.bf)
.filter(_.a.isDefined)
.map(_.a.get)
.toDF()
和filter
合并为map
,这将导致以下代码:
collect