spark sql对seq(s1, s2, s3, …)值的包装,seq的每个元素si会被包装成一个Row
如果si为一个简单值,则生成一个只包含一个value列的Row
如果si为一个N-Tuple,则生成一个包含N列的Row
特别的,如果N-Tuple是一元组,则视为非元组,即生成一个只包含一个value列的Row
scala> Seq(("bluejoe"),("alex")).toDF().show
+-------+
| value|
+-------+
|bluejoe|
| alex|
+-------+scala> Seq("bluejoe","alex").toDF().show
+-------+
| value|
+-------+
|bluejoe|
| alex|
+-------+scala> Seq(("bluejoe",1),("alex",0)).toDF().show
+-------+---+
| _1| _2|
+-------+---+
|bluejoe| 1|
| alex| 0|
+-------+---+
————————————————
Option
Scala Option(选项)类型用来表示一个值是可选的(有值或无值)。
Option[T] 是一个类型为 T 的可选值的容器: 如果值存在, Option[T] 就是一个 Some[T] ,如果不存在, Option[T] 就是对象 None 。
getOrElse() 方法
你可以使用 getOrElse() 方法来获取元组中存在的元素或者使用其默认的值
a.getOrElse(0)
若a有值,则取a的值;若a没有值,则取0为默认值;
isEmpty() 方法
你可以使用 isEmpty() 方法来检测元组中的元素是否为 None,
a.isEmpty
若a有值,则false;若a没有值,则true;
</