S-JIS[2017-01-15] 変更履歴

Column

Apache SparkDatasetで使用するColumnクラスについて。


概要

Columnはデータのカラムを表すクラス。
Dataset(やDataFrame)のメソッドを呼び出すときによく使用する。

Columnはカラム名を保持するだけでなく、演算式も保持することが出来る。
カラム名のみを保持するのはColumnNameクラス。
Columnにデータ型を付けるとTypedColumnになる。


Columnの生成

生成方法
Datasetから取得する方法。 val c = ds.col("name")
val c = ds.apply("name")
val c = ds("name")
ColumnNameを生成する方法。 import org.apache.spark.sql.ColumnName

val c = new ColumnName("name")
$を使ってColumnNameを生成する方法。
(SQLImplicitsに$の文字列補間のクラスが定義されている)
 
import spark.implicits._

val c = $"name"
sql.functionsを使って生成する方法。 import org.apache.spark.sql.functions._

val c = col("name")
Columnにデータ型を付けるとTypedColumnが生成できる。 val tc = c.as[String]

Columnの演算

Columnは演算式を保持することが出来る。
(主にDatasetのselectwhereで使用する)

生成方法
sql.functionsを使って生成する方法。 import org.apache.spark.sql.functions._

val c = expr("age + 1 as inc")
Columnの演算用メソッドを呼び出す方法。
基本的な演算メソッドはだいたい揃っている。
(等値比較は====!=で行う。==!=は通常のScalaで定義されているものだから)
import spark.implicits._

val c = $"age" + 1 as "inc"

Datasetへ戻る / Spark目次へ戻る / Scalaへ戻る / 技術メモへ戻る
メールの送信先:ひしだま