Scalaコレクションのエンコーダーを作成する方法(カスタムアグリゲーターを実装するため)?

ロングヘアおじさん

Spark2.3.0とScala2.11 こちらAggregatorのドキュメントに従ってカスタムを実装していますアグリゲーターには、入力、バッファー、出力の3つのタイプが必要です。

私のアグリゲーターはウィンドウ内の前のすべての行に作用する必要があるため、次のように宣言しました。

case class Foo(...)

object MyAggregator extends Aggregator[Foo, ListBuffer[Foo], Boolean] {
    // other override methods
    override def bufferEncoder: Encoder[ListBuffer[Mod]] = ???
}

オーバーライドメソッドの1つは、バッファータイプ(この場合はListBuffer。)のエンコーダーを返すことになっていますorg.apache.spark.sql.Encodersこれをエンコードするのに適したエンコーダーや他の方法が見つからないため、ここに何を返すかわかりません。

タイプの単一のプロパティを持つ新しいケースクラスを作成し、ListBuffer[Foo]それをバッファクラスとして使用Encoders.productして、それを使用することを考えましたが、それが必要かどうか、または他に何か足りないものがあるかどうかはわかりません。ヒントをありがとう。

Jacek Laskowski

Spark SQLにその作業を任せExpressionEncoder、次のように使用て適切なエンコーダーを見つける必要があります。

scala> spark.version
res0: String = 2.3.0

case class Mod(id: Long)

import org.apache.spark.sql.Encoder
import scala.collection.mutable.ListBuffer
import org.apache.spark.sql.catalyst.encoders.ExpressionEncoder

scala> val enc: Encoder[ListBuffer[Mod]] = ExpressionEncoder()
enc: org.apache.spark.sql.Encoder[scala.collection.mutable.ListBuffer[Mod]] = class[value[0]: array<struct<id:bigint>>]

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

カスタムアプリケーションでAndroidパターンロック画面を使用するための実用的なソリューションが必要です(ソースコードのリダイレクトではありません)

分類Dev

Elasticacheレプリケーショングループの「エイリアスターゲット」DNSレコードをRoute53に作成する方法

分類Dev

bashコマンドと関数のタイムアウトを実装するためのエレガントなソリューション

分類Dev

コレクションアグリゲーターの前にペイロードのコレクションをフィルタリングする方法

分類Dev

コメントシステムを実装するためのデータベースを構築する方法

分類Dev

カスタムコントローラーアクションでjsonapi-resources応答をレンダリングする方法は?

分類Dev

一致するフィールドセットを使用してZF2コレクションをカスタムレンダリングする方法

分類Dev

Mongoのコレクションのためのプログラムでインデックスを作成するために - 春データMongoDBの?

分類Dev

フロートJava 8を合計するためのカスタムコレクターの実装

分類Dev

アプリケーションを正しいプログラムにリンクするためのターゲットショートカットを作成する方法-InnoSetup?

分類Dev

Springアプリケーションでカスタム検証を実装するための最良の方法は何ですか?

分類Dev

Springアプリケーションでカスタム検証を実装するための最良の方法は何ですか?

分類Dev

カスタムBeanWrapper実装を使用してアプリケーションコンテキストをロードする方法はありますか

分類Dev

アクターのコレクションに対してクエリを実行する方法

分類Dev

Symfony3-フォームの埋め込みコレクションをレンダリングする方法

分類Dev

アクターシステムの実装を隠すライブラリを作成するためのパターンはありますか?

分類Dev

Xamarinでアイコンベースのカスタムツールバーを実装するための最良の方法は何ですか?

分類Dev

カスタムマテリアルUIコンポーネントのreactjs(16.13.0)コードで適切なリダイレクトを実行する方法は?

分類Dev

カスタムWebSocketセッションを作成するためのKtorリフレクションは、コンストラクターパラメーターを更新しません

分類Dev

ブレッドクラムナビゲーションを実装するためのJSFコンポーネントはありますか?

分類Dev

nullレコードを回避するためのLaravelコレクションフィルタリング

分類Dev

母集団コレクションへのハンドルを作成するためのデータエンコーディング

分類Dev

インターフェイスのコレクションを逆シリアル化すると、カスタムコンバーターを使用した以前のデータモデルからのJSONの逆シリアル化が失敗します

分類Dev

リクエストマッピングヘッダーのカスタムアノテーションを作成するSpring

分類Dev

コンパレータ実装クラスを作成せずに頻度でソートするためのコンパレータ

分類Dev

カスタムScalaコレクションにnewBuilderを実装する方法(正しい分散を使用)?

分類Dev

カスタムコレクションを実装されたインターフェイスにキャストする

分類Dev

サードパーティのReactアプリケーションから送信されたPostmanコレクションリンクを開くために、Open with Postmanボタンを実装するにはどうすればよいですか?

分類Dev

コンセントとIBを使用してテーブルビューセクションのカスタムヘッダービューを作成する方法

Related 関連記事

  1. 1

    カスタムアプリケーションでAndroidパターンロック画面を使用するための実用的なソリューションが必要です(ソースコードのリダイレクトではありません)

  2. 2

    Elasticacheレプリケーショングループの「エイリアスターゲット」DNSレコードをRoute53に作成する方法

  3. 3

    bashコマンドと関数のタイムアウトを実装するためのエレガントなソリューション

  4. 4

    コレクションアグリゲーターの前にペイロードのコレクションをフィルタリングする方法

  5. 5

    コメントシステムを実装するためのデータベースを構築する方法

  6. 6

    カスタムコントローラーアクションでjsonapi-resources応答をレンダリングする方法は?

  7. 7

    一致するフィールドセットを使用してZF2コレクションをカスタムレンダリングする方法

  8. 8

    Mongoのコレクションのためのプログラムでインデックスを作成するために - 春データMongoDBの?

  9. 9

    フロートJava 8を合計するためのカスタムコレクターの実装

  10. 10

    アプリケーションを正しいプログラムにリンクするためのターゲットショートカットを作成する方法-InnoSetup?

  11. 11

    Springアプリケーションでカスタム検証を実装するための最良の方法は何ですか?

  12. 12

    Springアプリケーションでカスタム検証を実装するための最良の方法は何ですか?

  13. 13

    カスタムBeanWrapper実装を使用してアプリケーションコンテキストをロードする方法はありますか

  14. 14

    アクターのコレクションに対してクエリを実行する方法

  15. 15

    Symfony3-フォームの埋め込みコレクションをレンダリングする方法

  16. 16

    アクターシステムの実装を隠すライブラリを作成するためのパターンはありますか?

  17. 17

    Xamarinでアイコンベースのカスタムツールバーを実装するための最良の方法は何ですか?

  18. 18

    カスタムマテリアルUIコンポーネントのreactjs(16.13.0)コードで適切なリダイレクトを実行する方法は?

  19. 19

    カスタムWebSocketセッションを作成するためのKtorリフレクションは、コンストラクターパラメーターを更新しません

  20. 20

    ブレッドクラムナビゲーションを実装するためのJSFコンポーネントはありますか?

  21. 21

    nullレコードを回避するためのLaravelコレクションフィルタリング

  22. 22

    母集団コレクションへのハンドルを作成するためのデータエンコーディング

  23. 23

    インターフェイスのコレクションを逆シリアル化すると、カスタムコンバーターを使用した以前のデータモデルからのJSONの逆シリアル化が失敗します

  24. 24

    リクエストマッピングヘッダーのカスタムアノテーションを作成するSpring

  25. 25

    コンパレータ実装クラスを作成せずに頻度でソートするためのコンパレータ

  26. 26

    カスタムScalaコレクションにnewBuilderを実装する方法(正しい分散を使用)?

  27. 27

    カスタムコレクションを実装されたインターフェイスにキャストする

  28. 28

    サードパーティのReactアプリケーションから送信されたPostmanコレクションリンクを開くために、Open with Postmanボタンを実装するにはどうすればよいですか?

  29. 29

    コンセントとIBを使用してテーブルビューセクションのカスタムヘッダービューを作成する方法

ホットタグ

アーカイブ