3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Snowparkとは

クラウド型DWHのSnowlakeから今年の6月にリリースされた新機能です。
Snowflake内のデータを操作するAPIでSnowflakeの計算リソースを使って処理の実行をすることができます。
現在はScalaのみサポートしてるみたいです。

試してみた

今回はSnowparkを使ってUDF(ユーザー定義関数)を使ってみようと思います。
SnowflakeではSQL、JavaScript、JavaのUDFをサポートしています。

Snowparkではudf()を使うことで簡単にUDFを定義することができます。
今回は受け取った値に対して1を追加するUDFにします。
select()に対してUDFの対象となるカラムを指定して渡してあげます。
udf()の呼び出しはセッションの接続後に来るようにしないと落ちます。

Main.scala
import com.snowflake.snowpark.Session
import com.snowflake.snowpark.functions._

object Main {
  def main(args: Array[String]): Unit = {
    val session = Session.builder.configFile(getClass.getResource("/profile.properties").getPath).create

    val addOne = udf((x: Int) => x + 1)

    session.table("table1").select(col("col2"), addOne(col("col2")).name("addOne")).show()
    session.close()
  }
}

ちゃんと1が追加されてました!
image.png

UDFの実行前にUDFの登録も良い感じにやってくれてます。

image.png

書き慣れた言語でUDFが書けるとクエリの幅も広がって良さそう⛄️

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?