問題タブ [apache-spark-encoders]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
9668 参照

scala - Apache Spark 2.1: java.lang.UnsupportedOperationException: scala.collection.immutable.Set[String] のエンコーダが見つかりません

Scala 2.11.6 で Spark 2.1.1 を使用しています。次のエラーが表示されます。ケースクラスは使用していません。

コードの次の部分は、スタックトレースが指す場所です。

0 投票する
1 に答える
3369 参照

scala - Spark Dataset[T] コンストラクターとしてのジェネリック T

次のスニペットではtryParquet、Parquet ファイルが存在する場合、関数はデータセットを読み込もうとします。そうでない場合は、提供されたデータセット プランを計算して保持し、返します。

ただし、これにより次のコンパイルエラーが発生しますdf.as[T]

データセットに格納されているタイプのエンコーダが見つかりません。プリミティブ型 (Int、String など) と製品型 (ケース クラス) は、spark.implicits._ をインポートすることでサポートされます。

他のタイプのシリアル化のサポートは、将来のリリースで追加される予定です。

case Success(df) => df.as[T]

型なしを返すようにtryParquetキャストを行い、呼び出し元が目的のコンストラクターにキャストできるようにすることで、この問題を回避できます。ただし、型を関数によって内部的に管理したい場合の解決策はありますか?dfDataFrame

0 投票する
2 に答える
1941 参照

scala - マップのデータセットを作成するには?

spark.createDatasetSpark 2.2 を使用していますが、Seqofを呼び出そうとすると問題が発生しますMap

私の Spark Shell セッションからのコードと出力は次のとおりです。

を試しましimport spark.implicits._たが、Spark シェル セッションによって暗黙的にインポートされていることは確かです。

これは現在のエンコーダではカバーされていないケースですか?

0 投票する
2 に答える
1218 参照

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

Scala 2.11 で Spark 2.3.0。ここAggregatorのドキュメントに従ってカスタムを実装しています。アグリゲーターには、入力、バッファー、および出力の 3 つのタイプが必要です。

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

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

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