問題タブ [flatmap]

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 投票する
2 に答える
7530 参照

android - RxJava と Retrofit 2 を使用してログイン成功後に何かを行う

ログインを検証するためにネットワーク呼び出しを実装しましたが、これは正常に機能しています。ログインが成功した後、ユーザーのデータを取得するために別の呼び出しを行う際に問題に直面しています。

API 呼び出しは次のとおりです。


------------- 編集 #1 -------------

@Tassos が提案したものを次のように実装しました。

subscribe メソッドでこのようにするのは正しいですか? onNext のオブジェクトの結果をキャストする必要がありますか?

//------------------------------------------------ ---------------------------//

ログイン成功後、Response オブジェクト User で取得したトークンを使用して別の URL を呼び出しObservable<Response<Object>> getData(@Header("Authorization") String token);、ヘッダーの Authorization として別の API 呼び出し ( ) に送信したいと考えています。flatMap と zip を使用してみましたが、このタスクを達成できませんでした。
何かアドバイスはありますか?この概念は私にとって新しいものです。

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

functional-programming - bind がリストを平坦化するのはなぜですか?

flatMapそれがモナドのbind方法だとおっしゃるのかしら。bind メソッドは、モナドに含まれる項目を別のモナドにマップする関数を取ります。こうやって

f(item)内部を持つ別のモナドを私に与えます。しかし、リストに適用されるとはどういう意味ですか? すべての List 項目を (リスト) モナドにマッピングすると、リスト全体のリストが得られます。bindリストに適用すると結果が平坦化されるのはなぜですか?

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

java - 「vals」のセットをグループ化するためにscalaでflatMapを使用する方法

私はscalaが初めてで、理解を深めるためにいくつかの例を作成していました. ここでこの問題を理解できないようです.Javaプログラムで文字列のリストを作成し、このリストをscalaプログラムで使用しています. Java クラスからリストを読み取るための私の scala コードは、次のようになります。

stringList には次が含まれます

これらの文字列を a、b、c という値に追加して、後で別の関数の引数に渡す方法を見つけようとしています。

しかし、これはうまくいきません。私は私に言うエラーを与えます

なぜこれが起こるのかわかりません。誰かが私がここで間違っていることを教えてもらえますか?

コードが汚く見える場合は申し訳ありませんが、私は初心者であり、まだ言語を理解しようとしています。どんな助けでも大歓迎です。前もって感謝します。

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

java - Spark flatMap/reduce: OutOfMemory をスケーリングして回避する方法は?

一部の map-reduce コードを Spark に移行していますが、関数で返す Iterable を構築するときに問題が発生しています。MR コードでは、キーでグループ化された reduce 関数があり、(multipleOutputs を使用して) 値を反復処理し、(複数の出力で、それは重要ではありません) 次のようなコードに書き込みを使用します (単純化):

ただし、Spark では、マップを変換し、これを次のシーケンスに変換しました: mapToPair -> groupByKey -> flatMap が推奨されているように... いくつかの本で。

mapToPair は基本的に functionMap を介してキーを追加します。これは、レコードのいくつかの値に基づいて、そのレコードのキーを作成します。キーのカーディナリティが非常に高い場合があります。

rddPairedにRDD.groupByKey () が適用され、RDD を取得して flatMap 関数にフィードします。

グループ化したら、reduceを実行するための flatMap 呼び出し。ここで、操作は変換です:

うまく機能します...レコードが多すぎないキーを使用します。実はreduceでelseに値の多いキーが入るとOutOfMemoryで壊れてしまいます。

注:作成したいロジックを説明するために「if」部分を含めましたが、「else」を入力すると失敗が発生します...データが「else」に入ると、通常はさらに多くの値があることを意味するためですデータの性質によるものです。

グループ化されたすべての値を「アウト」リストに保持する必要があるため、キーに何百万ものレコードがある場合、それらをメモリに保持するため、スケールされないことは明らかです。OOM が発生するポイントに到達しました (はい、それはメモリを要求する上記の「操作」を実行するときです-何も与えられません。ただし、非常に高価なメモリ操作ではありません)。

スケーリングするためにこれを回避する方法はありますか? よりスケーラブルな方法で同じ出力に到達するために他のいくつかのディレクティブを使用して動作を複製するか、マージするための値を Spark に渡すことができるようにするか (MR で行っていたように)...

0 投票する
3 に答える
333 参照

scala - Apache Spark - Scala - (k, {v1,v2,v3,...}) を ((k,v1),(k,v2),(k,v3),...) に FlatMap する方法

私はこれを得た:

に変換したい:

を使用してそれを行う方法についてのアイデアflatMap

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

powershell - PowerShell で同等の Flatmap

これにより、プロジェクト内のすべてのコーヒー スクリプト ファイルのリストが返されます。

.coffeeこれを、パーツが.jsandに変換される単一のリストに変換するにはどうすればよい.js.mapですか?

疑似コードの出力例:

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

swift - Swift: flatMap から辞書へ

次の JSON を解析しようとしています。

私もこのチュートリアルに従っています。Playground の Github にあります

Arrayこの例では、次を使用して一連の辞書を解析しています。typealias JSONDictionary = [String: AnyObject]

を解析する必要がDictionaryあり、KeyこれはStringであり、ValueそれはArrayです。したがってtypealias JSONDictionary = [String: [AnyObject]]、 を返すときにエラーが発生しますflatMap

エラー:

KeysasStringValuesasで辞書を取得するにはどうすればよいArrayですか? Generic私は彼らのアプローチ を維持したいと思います。