問題タブ [apache-spark-dataset]

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 に答える
7088 参照

apache-spark - 正しい null 可能性を持つケース クラスからの Spark スキーマ

カスタム Estimator の transformSchema メソッドの場合、入力データ フレームのスキーマをケース クラスで定義されたスキーマと比較できる必要があります。通常、これは、以下に概説するように、ケース クラスから Spark StructType / Schema を生成するように実行できます。ただし、間違った nullability が使用されています。

によって推論される df の実際のスキーマは次のspark.read.csv().as[MyClass]ようになります。

そしてケースクラス:

比較するには、次を使用します。

残念ながらfalse、ケース クラスから手動で推論された新しいスキーマが nullable に設定されているため、これは常に生成されますtrue(ja java.Integer が実際には null である可能性があるため)。

nullable = falseスキーマの作成時にどのように指定できますか?

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

apache-spark - パフォーマンス チューニング、outOfMemoryError GC および GC 制限の設定のための spark パラメータの設定

それぞれ 8 つの CPU コアと 30GB のメモリを持つ 5 つのモードがあります。5GB のデータセット 1 と 65GB のデータセット 2 があるので、それらを結合して s3 ファイル システムに保存し、次のパラメータを設定する必要があります。

しかし、どこでも検索してさまざまなパラメーターを試しましたが、それでもメモリエラーが発生しています。GC オーバーヘッドの制限を超えました。

Javaコードでもこれを使用しました:

スタックオーバーフローの解決策はありません。誰でもこの問題を解決するためのより良い解決策を教えてください。

そしていつか私はこれを得ています:

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

scala - Spark 2.0.0: カスタムのエンコードされた型で DataSet を集約する方法は?

LineString の kryo エンコーダーを備えたタプル エンコーダーを使用して、DataSet[(Long, LineString)] として保存されたデータがあります。

セグメント列に任意のマップ操作を適用し、基になる LineStrign メソッドを使用できます。

同じ ID を持つセグメントを処理するためにいくつかの UDAF を作成したいと思います。次の 2 つの異なるアプローチを試しましたが、成功しませんでした。

1) アグリゲーターの使用:

ここで、次のエラーが表示されます。

2) UserDefinedAggregateFunction の使用

私は何を間違っていますか?rdd groupBy API を使用する代わりに、カスタム タイプで集約 API を使用したいと考えています。Spark のドキュメントを検索しましたが、この問題に対する答えが見つかりませんでした。現時点では初期段階にあるようです。

ありがとう。

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

apache-spark - Apache Spark で非ランダムなデータセット分割を行うには?

randomSplit メソッドを使用してランダムに分割できることはわかっています。

「nonRandomSplit メソッド」を使用して、データを連続した部分に分割できますか?

アパッチ スパーク 2.0.1。前もって感謝します。

UPD: データの順序は重要です。「ID が小さい」データでモデルをトレーニングし、ID が大きいデータでモデルをテストします。そのため、データをシャッフルせずに連続した部分に分割したいと考えています。

例えば

私が考えることができる唯一の解決策は、countlimitを使用することですが、おそらくもっと良い方法があります。

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

scala - Spark DataFrame マップ エラー

申し訳ありませんが、もう一度質問する必要があります。これが重複していないことを願っています。私は最後のものを編集しましたが、編集されたバージョンを見た人は誰もいなかったと思います。これは問題の短い例です:

エラー:

私がやりたいことは、各行を変更することです。この場合、列が1つしかないことがわかり、データフレーム行を更新された行にマップしようとしているときにエンコーダーエラーのように処理できます。しかし、何百もの列がある場合、どうすれば問題を解決できますか? 条件を満たさない行をいくつか削除したい。現時点で私は使用しています:

しかし、これが最善の解決策だとは思いません。また、 StackoverflowErrorで実行します:

助けてくれたTY:)

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

scala - ADT / 封印された特性階層を Spark DataSet 列にエンコードする

代数データ型 (ADT) (つまり、Scala の封印された特性階層) を Spark DataSet列に格納したい場合、最適なエンコード戦略は何ですか?

たとえば、リーフ型がさまざまな種類のデータを格納する ADT があるとします。

構築する最良の方法は次のとおりです。

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

scala - 関数の引数として Spark データセットを渡す

関数への引数として Spark Dataset を渡したいです。例えば

さまざまなデータセットを printDS() に渡したいです。Spark データセットは厳密に型指定されているため、Dataset[Any] を受け入れる printDS() に Dataset[Token1] または Dataset[Token2] を渡す方法は? Spark Dataset ではなく、Spark Dataframes を関数の引数として渡すことができます。