2016-07-01 12 views
2

Spark DataFrame/SQLコンテキストに関する限り、UDFとカスタム式の違いは何ですか?特に、両方ともCatalystに対して不透明ですか?どちらかを使用する理由と相手を使用する理由は何ですか?UDF対カスタム式

(カスタム式がhere、例えば、言及された - その場合にはそれらが必要なかったが。)

+0

答えが見つかりましたが、それは私のものではありません。 https://forums.databricks.com/answers/2706/view.html。表現は、Catalystとタングステンの最適化に参加できるUDFのバージョンに似ているようです。 (通常のUDFは、Scala UDFでもできません)Scalaで記述する必要があるようですが、一度記述すればPython APIを追加することができます。 – max

答えて

3

UDF:

  • はScalaの型で動作します(あなたがUDTにアクセスすることができます)
  • は、非決定論としてマークされ
  • は、実行計画に移動することはできません
  • は、コード生成
  • のために使用することはできません

式:

  • は決定論/非決定
  • は、コード生成のために使用されるが、すべての
  • は、実行計画に移動することができます実装されていませすることができますよう
  • をマークすることができる触媒の種類で動作

-はいずれも発現特異的触媒が付いていなければ不透明であるルール

+0

ありがとう!どこで詳細を読むことができますか?私はこれらについてあいまいな直感を持っていますが、私は実際にはこれらの概念を知らないのです。たとえば、「不透明」とは、Catalystが最適化できることを意味していると思いましたが、明らかにそれ以上のものがあります。 – max

関連する問題