問題タブ [apache-pig]
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.
apache-pig - 複雑な名前のロード ファイルに関する豚の問題
長くて複雑な名前のファイルを豚にロードする必要があります。
豚は不平を言った:
誰が何が問題なのか知っていますか?ありがとう。
hadoop - Apache Pigで空の入力ファイルまたは欠落している入力ファイルをどのように処理しますか?
私たちのワークフローは、AWS Elastic Map Reduceクラスターを使用して、一連のPigジョブを実行し、大量のデータを操作して集計レポートにします。残念ながら、入力データには一貫性がない可能性があり、入力ファイルがないか、0バイトのファイルがパイプラインに渡されないか、パイプラインの一部のステージで生成される可能性があります。
LOADステートメント中に、入力ファイルが見つからないか、入力ファイルのいずれかが0バイトである場合、Pigは見事に失敗します。
これを回避する良い方法はありますか(カスタムローダーを作成せずに、Pig構成またはスクリプトまたはHadoopクラスター構成内で...)?
(AWS Elastic Map Reduceを使用しているため、Pig0.6.0とHadoop0.20でスタックしています。)
hadoop - Hive に格納されたデータに対して Pig クエリを実行する
Hive 形式で保存された Pig クエリを実行する方法を知りたいです。圧縮データを格納するように Hive を構成しました (このチュートリアルhttp://wiki.apache.org/hadoop/Hive/CompressedStorageを使用)。
それ以前は、Hive の区切り文字 (^A) を使用して通常の Pig ロード関数を使用していました。しかし現在、Hive は圧縮されたシーケンス ファイルにデータを格納します。どの負荷関数を使用しますか?
ここで述べたような緊密な統合は必要ないことに注意してください: Using Hive with Pig、Hive によって生成された圧縮シーケンス ファイルを読み取るために使用するロード関数だけです。
すべての答えをありがとう。
hadoop - Pig は「load」ステートメントで Hadoop Glob をどのように使用しますか?
以前に指摘したように、Pig は空の (0 バイト) ファイルをうまく処理できません。残念ながら、これらのファイルを作成する方法はたくさんあります ( Hadoop ユーティリティ内であっても)。
Hadoop の glob 構文を使用して、 LOAD ステートメントで特定の命名規則に一致するファイルのみを明示的にロードすることで、この問題を回避できると考えました。残念ながら、これは機能していないようです。glob を使用して既知の適切な入力ファイルにフィルターをかけた場合でも、前述の 0 バイト エラーが発生します。
以下に例を示します。S3 に次のファイルがあるとします。
- mybucket/a/b/ (0 バイト)
- mybucket/a/b/myfile.log (>0 バイト)
- mybucket/a/b/yourfile.log (>0 バイト)
Pig スクリプトで次のような LOAD ステートメントを使用すると、次のようになります。
Pig が 0 バイトのファイルでチョークしないことを期待しますが、それでもチョークします。Pig に、予想される glob パターンに一致するファイルのみを実際に見てもらうためのトリックはありますか?
java - LoadFunc.getNext() でレコードをスキップする
LoadFunc を拡張しています。getNext 関数では、特定の条件下でタプルを返すことをスキップしたいと思います。この方法では、データ ファイルのサンプルしかロードできませんでした。返したくない行に対して null を返そうとしましたが、問題は、最初の null Tuple が返された後にメソッドが終了することです。
これを行う方法を知っている人はいますか?別の方法で行う必要がありますか?
前もって感謝します。
hadoop - elephantbird Pig JsonLoaderがファイルの一部のみを処理するのはなぜですか?
私はAmazonのElasticMap-ReduceでPigを使用してバッチ分析を行っています。私の入力ファイルはS3にあり、1行に1つのJSONディクショナリで表されるイベントが含まれています。elephantbirdJsonLoaderライブラリを使用して入力ファイルを解析します。ここまでは順調ですね。
インタラクティブなPigセッションでローカルファイルシステムまたはhdfsに保存されている大きなファイルの処理で問題が発生しています。入力ファイルが分割されるのに十分な大きさである場合、分割の1つだけがelephantbirdによって処理され、分割の最後にエラーメッセージなしで処理が停止するように見えます。S3からの入力をストリーミングする場合(S3入力でファイルが分割されない場合)、またはファイルをPigが直接読み取り可能な形式に変換する場合、同じ問題は発生しません。
具体的な例として、833,138行のファイルは379,751行までしか処理されません(Pigで完了率を見ると、50%までスムーズに進み、その後100%にジャンプします)。また、400,000行のファイルを試してみたところ、正常に処理されました。
だから私の質問は:なぜ象の鳥によって1つの分割だけが処理されるのですか?インタラクティブモードのPigがどのように機能するのか誤解していますか、それとも何かひどく間違っていることがありますか?
hadoop - ApachePigのLinux「diff」に相当
2つの大きなファイルで標準の差分を実行できるようにしたいと思います。動作するものがありますが、コマンドラインでの差分ほど速くはありません。
誰かがこれを行うためのより良い方法を手に入れましたか?
sql - WHERE句内のSQL結合について
(Hadoopクラスターで使用するために)PigLatinに変換しようとしているSQLのクエリがあります。ほとんどの場合、クエリをPigに移動することに問題はありませんが、理解できない何かに遭遇しました。
次のようなselectステートメントを想像してみてください。
今、私はPigへの直接翻訳が不可能かもしれないことを知っています。その場合、このステートメントを計算に必要なJOIN(およびフィルター)にどのように分解するのか疑問に思います(それからPigクエリを作成する方法を確認する方が簡単な場合があります)。
Pigメーリングリストにアクセスしましたが、Pigは実際にはJOINと「OR」を実行しないため、適切な解決策はまだ見つかりません。私はこの質問がいかに奇妙であるかを知っています。
(Pigでこれがどのように行われるかについて誰かが知っているなら、私はそれを見ることに反対しません...)
編集:これがHiveでもっと簡単になるかどうか誰かが知っていますか?
hadoop - カサンドラ豚の挿入例外
ブタの CassandraStroage() を使用して大きなデータ セットを cassandra に挿入しています。4 時間実行した後、次の例外でクラッシュしました。
なぜこれが起こったのですか?