問題タブ [bag]
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.
c++ - バッグを仕分けしようとすると EXC_BAD_ACCESS エラーが発生する
そのため、ファイル内の単語数を取得してバッグに挿入しようとしています。処理時間を改善するために、そのオブジェクトへの参照を取り、それを前のものに切り替える置換コマンドを作成しました。これにより、より一般的な単語がバッグ内でインクリメントされるのが速くなります。EXC_BAD_ACCESS Code 2 エラーが継続的に発生しますが、これらがどのように作成されるかわかりません。以下は問題のコードブロックです。
と
これは無限ループが原因である可能性があると読みましたが、作成された while ループは無限ループを作成するべきではありません。どんな助けでも大歓迎です。コード全体を投稿する必要がある場合は、次の場所にあります。
コードの Github Gist https://gist.github.com/nohe427/ff1ce9bbeec78983aec3
hadoop - Apache Pig - バッグを読み取れない
以下のように、PIG を使用してカンマ区切りのデータを読み込もうとしています。
その間に、次のような警告が表示されます。
バッグ内にコンマ (,) があると警告を表示しているようです。
今私がしたことは:コンマをタブ(または他の区切り記号)に変更すると、うまくいきました:
それで、コンマで区切られたバッグを持つコンマ区切りのデータがあるかどうか疑問に思っていますが、それは機能しませんか?
tuples - Pig で 1 つのレベルに FLATTEN を使用するには?
問題
予想されるスキーマには不要なネストされたタプルで構成されるインナー バッグがあります。タプルレイヤーの1つを削除して、シンプルなインナーバッグだけを残したい. Pig 0.14 を使用しています。
例
私の入力データのサンプル。
私の望む出力。
上記の質問を促したいくつかのマイナーな操作 (以下を参照) 後の私の現在の状態。
試み
タプル内のアイテムをグループ化しようとしていることが複雑なように感じます。グループ化された要素をタプルに残すように見える単純なグループステートメントを実行しました(私はPigにかなり慣れていません)。
ダンプc
は、上記の望ましくない出力を提供します。マルチパート キーは、取り外され、グループとして使用され、取り外され(a,b,c)
てもされなくてもよいように剥がされる必要があります。a
b
c
FLATTEN
要素のグループ化を解除しようとしています。その後、FLATTEN
もう一度グループ化できますが、これは少しばかげているようです。これよりも良い方法はありますか?
キーを保持しているため、これはまだ私が望むものを実際には提供していません:
私は何が欠けていますか?
java - ArrayBag 内のすべてのオブジェクトを複製する
私は現在、Java でさまざまな DataStructures を学習しています。その 1 つは、Array バッグと Linked バッグです。データ構造が非常に重要である理由と、ジェネリックを使用すると、オブジェクトの型に関係なく、オブジェクトを均一な方法でより簡単に処理できることを理解しています (そのステートメントによる私の考えや理解が、データ構造の使用の背後にある理由で間違っている場合は、教えてください)。
そうは言っても、私が完全に理解していないジェネリックとデータ構造の側面がいくつかあります。このスレッドは、これらのことを個別に調べ続けるため、特に言及していませんが、特定のバッグのすべてのアイテムを複製できるようにする方法を適切に実装するのに問題がある理由に影響を与える可能性があります.
以下は、私が取り組んでいるラボのコードです。ラボでは、ドライバーがコンパイルされて実行されたときにコマンド プロンプトに適切な応答が返されるように、このファイルで特定のメソッドを完了するように求めています。ドライバーを実行すると、これまでに行ったことは正しいと思います。しかし、duplicateAll()
メソッド (以下のファイルの最後から 2 番目のメソッド) を完了しようとすると、どのように変更しようとしても同じエラーが発生し続けます。removeDuplicates()
私の最後の方法は完全ではありませんが、私はまだラボのその部分に達していない ことを覚えておいてください.
コードは次のとおりです。
コードをコンパイルしようとすると、次のエラーが発生します。
this.
次のような代わりに試しました(メソッドをthisBag
貼り付けるだけです:duplicateAll()
そして、コンパイル時に次のエラーが発生します。
したがって、適切にキャストしなかったthis
ため、上記のエラーが直接発生していることがわかります。しかし、最後の上に投稿された 2 つのエラーは、私がハングアップしている場所です。
私の質問は次のとおりです。
これらのエラーが表示されるのはなぜですか? cannot find symbol
Java の最後のクラスで同様のエラーを受け取りました。をキャストし、メソッド内のコードのエントリT[] thisBag = this.toArray();
を使用しようとしたため、私のアプローチは正しいと思いました。thisBag
これは間違っているためgenerics
、ArrayBag/Bag DataStructures でこれらをクリアする方法がわかりません。
また、一般的なバッグ内のエントリの複製に適切に取り組んでいますか、それとも私が気付いていないより良い方法がありますか? このファイル内のメソッドを有利に使用しようとしていadd()
ますが、明らかに問題があります。Java の API のドキュメントをオンラインで見ると、この複製を実現するためにいくつかの方法があることがわかります。
arrays.fill
arrays.setAll(T[] array, IntFunction<? extends T> generator)
arrays.clone
メモリ内で複製するのに十分な固定スペースが配列にあることを最初に確認する必要があると考えています。そうでない場合は、動的配列を使用してスペースを 2 倍にし、内容を新しい配列に 2 回コピーする必要があります。これは私にとって新しいことであり、このタイプのアプローチを個人的に掘り下げたことはありません (概念を学んだだけです)。
いつものように、皆さんが同様の問題にどのようにアプローチするかを聞くのを楽しみにしています! また、私が間違っていることを教えてください!
ETA: 提供された回答を追加し、私の修正で別の問題が発生しました
@gar が以下を提案した後、私は以下を実装しました。
これを行ったとき、次のエラーが発生し始めました。
私はこのサイトでいくつかの掘り下げを行い、これが配列のエントリによって引き起こされていることを読みましnull
た(したがって、java.lang.NullPointerException
.メソッドの末尾からSystem.out.println
を削除すると、問題が修正されました。 numberOfEntries++;
duplicateAll()
他の人が知っているようにその情報を共有すると思っただけです.
いつもながら、お得な情報です!