在上火花数据集有多种生成的函数签名select()
功能展望:星火数据集选择与typedcolumn
(c1: TypedColumn[MyClass, U1],c2: TypedColumn[MyClass, U2] ....)
这似乎在暗示我应该能够MyClass的成员直接引用,并类型安全,但我不知道如何...
ds.select("member")
当然工程..似乎ds.select(_.member)
也可能以某种方式工作?
在上火花数据集有多种生成的函数签名select()
功能展望:星火数据集选择与typedcolumn
(c1: TypedColumn[MyClass, U1],c2: TypedColumn[MyClass, U2] ....)
这似乎在暗示我应该能够MyClass的成员直接引用,并类型安全,但我不知道如何...
ds.select("member")
当然工程..似乎ds.select(_.member)
也可能以某种方式工作?
在Scala的DSL为select
,有很多种方法识别一Column
:
'name
$"name"
或col(name)
expr("nvl(name, 'unknown') as renamed")
要得到一个TypedColumn
从Column
你只需使用myCol.as[T]
即可。
例如:ds.select(col("name").as[String])
如果你想的ds.select(_.member)
相当于只使用map
:
case class MyClass(member: MyMember, foo: A, bar: B)
val ds: DataSet[MyClass] = ???
val members: DataSet[MyMember] = ds.map(_.member)