問題タブ [reduce]

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

database - CouchDBでmapreduceを使用して、出力する行を減らします

顧客注文の2つのドキュメントタイプがあるとします。顧客ドキュメントには名前、住所などの基本情報が含まれ、注文は顧客が何かを注文するたびにすべての注文情報が含まれます。ドキュメントを保存する場合、タイプ=注文またはタイプ=顧客。

10人の顧客と30件の注文のセットに対してマップ関数を実行すると、40行が出力されます。一部の行は顧客になり、一部は注文になります。

問題は、注文情報が顧客情報を含む行の中に「詰め込まれる」ように、reduceをどのように書くかです。したがって、10行(10人の顧客)が返されますが、各顧客に関連するすべての注文が返されます。

基本的に、出力に個別のレコードは必要ありません。それらを結合して(注文を1つの顧客行に)、reduceが方法だと思いますか?

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

python - 2タプルのリストから辞書を作成する

次のような2タプルのリストがあります。

これを辞書オブジェクトにマップできるようにしたいので、次のようなことができます。

だから私はこれを試しましたが、なぜ失敗するのですか?

これにより、エラーが発生します。

AttributeError:'NoneType'オブジェクトに属性'update'がありません

私は何が間違っているのですか?

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

couchdb - ビューの照合順序を CouchDB の有用な出力に「マージ」する

CouchDB で「結合」を行う場合、ビュー照合を使用してレコードをグループ化できます。たとえば、顧客注文の 2 つのドキュメント タイプがあるとします。customer 、その顧客のすべての注文、次の顧客、注文を返すことができるようにします。

問題は、顧客が 10 人、注文が 40 件ある場合、出力が 50 行ではなく 10 行になるように行をマージするにはどうすればよいかということです。基本的に、顧客行にさらに情報を追加します。

a_listまたは aを使用するreduceとこれが解決すると思います。問題は、これをどのように正確に行うかです。

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

map - map/reduce から null キーを入力すると、couchdb になります

何らかの理由で、map/reduce から null キーしか得られないため、Mac では couchdb になります。

結果:

私はcouchapp v8.1とcouchdb v1.0.2を使用しています

私のマップ機能は次のとおりです。

私の削減機能は次のとおりです。

私が期待していた結果:

私がどこで間違ったのか分かりますか?

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

hadoop - Hadoopは、特定のreduce呼び出しの値に対する反復中にキーオブジェクトを変更しているようです

Hadoopバージョン:0.20.2(Amazon EMRの場合)

問題:以下に追加したマップフェーズ中に書き込むカスタムキーがあります。reduce呼び出し中に、特定のキーの値に対していくつかの単純な集計を行います。私が直面している問題は、reduce呼び出しでの値の反復中に、キーが変更され、その新しいキーの値を取得したことです。

私のキータイプ:

このキーの実装に何か問題がありますか?以下は、reducecallでキーの取り違えに直面しているコードです。

これでどんな助けでも大いに感謝されるでしょう。

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

map - トークンを整数パラメータに変換するルールを書き直す

レコードをランク​​付けするという考えにかなり取り組んだ後、私は最終的にドキュメントの数値ベースのスコアに落ち着きました。これは、これらのスコアに基づいてソートするために発行するものです。

これらの数字には意味があり、最初の 2 桁が特定のタイプのドキュメントを表します。

したがって、スコアに基づいてソートされたタイプ 22 のドキュメントを取得するには、開始キーが 220000 で終了キーが 229999 のビューをクエリするだけです。

これはすべてうまく機能します。URLの書き換えを使用しようとすると問題が発生します。

私は基本的にルートを変更しようとしています:

xx は {doctype} です

私の問題は、書き換えルールを指定することです:

  • それぞれ 0000 と 9999 を追加して開始キーと終了キーを作成するにはどうすればよいですか?

  • 数値を指定するにはどうすればよいですか? プレースホルダー ":doctype" を使用すると、数値型ではなく文字列型になるため、きれいな URL を変更して開始キーと終了キーの両方を入力したとしても、クエリが失敗します。

  • リストビューで結果をフィルタリングすることで問題を回避しました(getRow()から興味のないドキュメントを無視します)。

私のソート戦略についても自由にコメントしてください..他の人がcouchdbでソートとスライスの問題をどのように解決したか知りたいです

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

r - Rの要素ごとのバインディング

f次のような関数が欲しい

(outer(X, Y, f))[i, j]Xのi番目の要素とYのj番目の要素を並べて連結したものc(X[i], Y[j])です。

さらに、この結果は、プロセスを繰り返すことができるようなものにしたいと思います。このようにして、次のようになります。

(outer(outer(X, Y, f), Z, f))[i, j, k]は、Xのi番目の要素、Yのj番目の要素、およびZのk番目の要素を並べて連結したものですc(X[i], Y[j], Z[k])

最終的に、私は次のような関数を定義することを目指しています。

そのような、

その後dim(A)、、、c(length(v_1), ..., length(v_p))_

すべての有効なインデックスセット(i_1、...、i_p)。

例えば:

:上記の例に示されている結果のようなベクトルの配列がRでも有効/可能かどうかはわかりませんがc("A", 3, "f")、要素が「A」であるベクトルのようなオブジェクトを提案するような式を使用しています。 3、および「f」'。)

これを達成するためにfに何を使用できますか?

ありがとう!

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

r - 外部をn次元に一般化する方法は?

標準の R 式outer(X, Y, f)は、(i, j) 番目のエントリの値が である行列に評価されますf(X[i], Y[j])

:multi.outerの n 次元の一般化である関数 を実装したいと思います。ここで、f は n 項関数であり、(length(X_1) * ... * length(X_n)) 配列 (i_1,.. .,i_n) 番目のエントリには、すべての有効なインデックス セット (i_1,...,i_n) の値があります。明らかに、{1, ..., n} の各 i について、in のすべての要素は、関数 の許容される i 番目の引数でなければなりません。n=2 の場合、は と同じことを行いますが、署名は異なります (IOWは と同等です)。outermulti.outer(f, X_1, ..., X_n)f(X_1[i_1], ..., X_n[i_n])X_imulti.outer(f, X_1,...,X_i,..., X_n)fmulti.outeroutermulti.outer(f, X, Y)outer(X, Y, f)

引数 X_1、...、X_nmulti.outerはすべてベクトルですが、必ずしもすべてが同じモードであるとは限らないことに注意してください。たとえば、X_1 と X_2 は、それぞれc(1, 2, 3)とである可能性がありLETTERS[10:20]ます。

ありがとう!

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

map - Hadoop:スレーブを明示的なリデューサーとして設定しますか?

最新の安定した Hadoop リリースを使用して、debian + ubuntu で Hadoop マルチノード セットアップを使用します。特定のスレーブをレデューサーに設定することは可能ですか? レデューサー タスクを 1 つだけ使用し、それを最もパフォーマンスの高いスレーブに割り当てたいと考えています。atm には 1 人のマスターがいて、タスクをスレーブに割り当てるだけで、5 つのスレーブがあり、1 つは他のスレーブよりも強力です。

前もって感謝します