問題タブ [elephantbird]
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.
json - Pig: bytearray を文字列/json として解析する
によってSequenceFile形式でS3に保存されたjsonデータ形式がありますsecor
。Pigを使って分析したい。を使用しelephant-bird
て、S3 からフォーマットで取得できましたが、Json を解析するために明らかに必要な にbytearray
変換できませんでした。chararray
TextConverter
insted を使用すると、次のBytesWritableConverter
ような空の値が残ります。
Pig がバイト配列を文字列にキャストしてダンプできたことは明らかなので、それが不可能であるようには見えません。それ、どうやったら出来るの?
json - Pig で Elephant Bird を使用して、バッグとタプルでネストされた JSON にアクセスできない
Pig で Elephant Bird を使用して、レベルにバッグやタプルを含めることができるネストされた JSON オブジェクトを解析しようとしています。第 4 レベルで列を参照すると、奇妙な動作が発生します。
Pig では、4 番目以下の列を参照するときに問題が発生します。データがバッグ、タプル、マップを交互に行っているためと思われます。明確にするために、JsonLoader は一部をマップに変換するように見えますが、他は変換しません。たとえば、以下の「5」の参照を参照してください。
HDP バージョン: 2.1.2、豚バージョン: 0.12.1、象鳥バージョン: 4.13
これは、キーと値がプレースホルダーに置き換えられた構造のサンプル データです。
豚の声明:
実行すると、次のdump b;
結果が得られます。
ただし、これはすべて期待どおりに見えます。
しかし、現在、実行dump c;
しても上記のデータは返されません。
スキーマの記述を省略する場合も同様です
より深いレベルを参照すると、エラーが発生します。
レベル 5 と 6 をどのように参照すればよいですか? 私の最終的な目標は、配列/バッグの要素を参照eight_id
しeight_score
てフラット化できるようにすることですseven
apache-pig - エレファントバードを使用してjsonをロードする - 単純なタスクでのエラー
テストと分析のためにデータをロードするだけで問題があります。私は使用しています
https://www.reddit.com/r/datasets/comments/3oiv9z/reddit_september_comment_archive_is_now_available/
このファイルから 10000 行だけを取得した後、それらを pig にロードしようとしました。
このような単純なものでもエラーが返されます。
エラーコード:
メインクラス [org.apache.oozie.action.hadoop.PigMain]、終了コード [2]
json - エラー 1066: エイリアスのイテレータを開けません - PIG SCRIPT
私は長い間この問題に直面してきました。これを解決しようとしましたが、できませんでした。これを解決するには、専門家のアドバイスが必要です。
サンプルのツイート json ファイルを読み込もうとしています。
sample.json;-
ELEPHANT BIRDを使用してこの json ファイルを読み込もうとしました
脚本:-
出力:-
しかし、Bをダンプしようとすると、次のエラーが発生しました
エラー org.apache.pig.tools.grunt.Grunt - エラー 1066: エイリアス B のイテレータを開けません
ここで完全なログを提供しています。
199 [メイン] 情報 org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler - 単一ストア ジョブの設定 2016-09-11 14:07:57,199 [メイン] 情報 org.apache.pig.data.SchemaTupleFrontend -キー [pig.schematuple] が false の場合、コードは生成されません。2016-09-11 14:07:57,199 [main] INFO org.apache.pig.data.SchemaTupleFrontend - 生成されたコードを分散キャッシュに移動するプロセスの開始 2016-09-11 14:07:57,199 [main] INFO org.apache .pig.data.SchemaTupleFrontend - 分散キャッシュはサポートされていないか、ローカル モードでは必要ありません。コード一時ディレクトリでキー [pig.schematuple.local.dir] を設定: /tmp/1473583077199-0 2016-09-11 14:07:57,206 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer. MapReduceLauncher - 1 つの map-reduce ジョブが送信待ちです。2016-09-11 14:07:57,207 [JobControl] INFO org.apache.WARN org.apache.hadoop.mapreduce.JobResourceUploader - ジョブ jar ファイルが設定されていません。ユーザー クラスが見つからない可能性があります。Job または Job#setJar(String) を参照してください。2016-09-11 14:07:57,211 [JobControl] INFO org.apache.hadoop.mapreduce.lib.input.FileInputFormat - プロセスへの合計入力パス: 1 2016-09-11 14:07:57,211 [JobControl] INFO org .apache.pig.backend.hadoop.executionengine.util.MapRedUtil - プロセスへの合計入力パス (結合) : 1 2016-09-11 14:07:57,212 [JobControl] INFO org.apache.hadoop.mapreduce.JobSubmitter - 番号分割数:1 2016-09-11 14:07:57,216 [JobControl] INFO org.apache.hadoop.mapreduce.JobSubmitter - ジョブのトークンを送信: job_local360376249_0009 2016-09-11 14:07:57,267 [JobControl] INFO org. apache.hadoop.mapreduce.Job - ジョブを追跡する URL: http://localhost:8080/288 [LocalJobRunner Map Task Executor #0] INFO org.apache.pig.data.SchemaTupleBackend - キー [pig.schematuple] が設定されていません...コードを生成しません。2016-09-11 14:07:57,290 [LocalJobRunner Map Task Executor #0] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapOnly$Map - ジョブ フェーズごとに処理されるエイリアス (AliasName[行、オフセット] ): M: twitter[20,10],B[21,4] C: R: 2016-09-11 14:07:57,291 [Thread-214] INFO org.apache.hadoop.mapred.LocalJobRunner - マップタスク実行者完了。2016-09-11 14:07:57,296 [スレッド-214] PigMapOnly$Map - ジョブ フェーズごとに処理されるエイリアス (AliasName[line,offset]): M: twitter[20,10],B[21,4] C: R: 2016-09-11 14:07:57,291 [Thread -214] INFO org.apache.hadoop.mapred.LocalJobRunner - マップ タスク エグゼキュータが完了しました。2016-09-11 14:07:57,296 [スレッド-214] PigMapOnly$Map - ジョブ フェーズごとに処理されるエイリアス (AliasName[line,offset]): M: twitter[20,10],B[21,4] C: R: 2016-09-11 14:07:57,291 [Thread -214] INFO org.apache.hadoop.mapred.LocalJobRunner - マップ タスク エグゼキュータが完了しました。2016-09-11 14:07:57,296 [スレッド-214]警$Job.runTasks(LocalJobRunner.java:462) org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:522) で原因: java.lang.IncompatibleClassChangeError: インターフェース org.apache.hadoop.mapreduce.Counter が見つかりましたが、クラスは com.twitter で予期されていました.elephantbird.pig.util.PigCounterHelper.incrCounter(PigCounterHelper.java:55) com.twitter.elephantbird.pig.load.LzoBaseLoadFunc.incrCounter(LzoBaseLoadFunc.java:70) at com.twitter.elephantbird.pig.load.JsonLoader .getNext(JsonLoader.java:130) org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigRecordReader.nextKeyValue(PigRecordReader.java:204) org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask) .java:556) org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80) で org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context で。org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145) の nextKeyValue(WrappedMapper.java:91) org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787) の org.apache org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243) の .hadoop.mapred.MapTask.run(MapTask.java:341) java.util.concurrent.Executors$RunnableAdapter.call の(Executors.java:511) で java.util.concurrent.FutureTask.run(FutureTask.java:266) で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) で java.util.concurrent.ThreadPoolExecutor$ Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 2016-09-11 14:07:57,467 [メイン] INFO org.apache.pig.backend.hadoop.executionengine .mapReduceLayer.MapReduceLauncher - HadoopJobId: job_local360376249_0009 2016-09-11 14:07:57、467 [メイン] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 処理エイリアス B、Twitter 2016-09-11 14:07:57,467 [メイン] INFO org.apache.pig.backend.hadoop. executionengine.mapReduceLayer.MapReduceLauncher - 詳細な場所: M: twitter[20,10],B[21,4] C: R: 2016-09-11 14:07:57,468 [main] INFO org.apache.pig.backend. hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 0% 完了 2016-09-11 14:07:57,468 [メイン]mapReduceLayer.MapReduceLauncher - 0% 完了 2016-09-11 14:07:57,468 [メイン]mapReduceLayer.MapReduceLauncher - 0% 完了 2016-09-11 14:07:57,468 [メイン]警告 org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - おっと! 一部のジョブが失敗しました。失敗時に Pig をすぐに停止する場合は、-stop_on_failure を指定します。2016-09-11 14:07:57,468 [メイン] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - ジョブ job_local360376249_0009 が失敗しました! すべての依存ジョブの実行を停止します 2016-09-11 14:07:57,468 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 100% 完了 2016-09-11 14:07:57,469 [main] ] INFO org.apache.hadoop.metrics.jvm.JvmMetrics - JVM メトリクスを processName=JobTracker、sessionId= で初期化できません - 既に初期化されています 2016-09-11 14:07:57,469 [main] INFO org.apache.hadoop.metrics. jvm.JvmMetrics - processName=JobTracker、sessionId= で JVM メトリクスを初期化できません - 既に初期化されています(s) 失敗しました! 2016-09-11 14:07:57,470 [メイン] INFO org.apache.pig. tools.pigstats.mapreduce.SimplePigStats - スクリプト統計: HadoopVersionPigVersionUserIdStartedAtFinishedAtFeatures 2.7.1.2.3.4.7-40.15.0.2.3.4.7-4root2016-09-11 14:07:572016-09-11 14:07:57UNKNOWN 失敗! 失敗したジョブ: JobIdAliasFeatureMessageOutputs job_local360376249_0009B、twitterMAP_ONLYMessage: ジョブが失敗しました!ファイル:/tmp/temp252944192/tmp-470484503、入力: "file:///root/PIG/PIG/sample.json" からデータを読み取れませんでした 出力( s): 「ファイル:/tmp/temp252944192/tmp-470484503」で結果を生成できませんでした0 ジョブ DAG: job_local360376249_0009 HadoopVersionPigVersionUserIdStartedAtFinishedAtFeatures 2.7.1.2.3.4.7-40.15.0.2.3.4.7-4root2016-09-11 14:07:572016-09-11 14:07:57UNKNOWN 失敗しました! 失敗したジョブ: JobIdAliasFeatureMessageOutputs job_local360376249_0009B、twitterMAP_ONLYMessage: ジョブが失敗しました!ファイル:/tmp/temp252944192/tmp-470484503、入力: "file:///root/PIG/PIG/sample.json" からデータを読み取れませんでした 出力( s): 「ファイル:/tmp/temp252944192/tmp-470484503」で結果を生成できませんでした0 ジョブ DAG: job_local360376249_0009 HadoopVersionPigVersionUserIdStartedAtFinishedAtFeatures 2.7.1.2.3.4.7-40.15.0.2.3.4.7-4root2016-09-11 14:07:572016-09-11 14:07:57UNKNOWN 失敗しました! 失敗したジョブ: JobIdAliasFeatureMessageOutputs job_local360376249_0009B、twitterMAP_ONLYMessage: ジョブが失敗しました!ファイル:/tmp/temp252944192/tmp-470484503、入力: "file:///root/PIG/PIG/sample.json" からデータを読み取れませんでした 出力( s): 「ファイル:/tmp/temp252944192/tmp-470484503」で結果を生成できませんでした0 ジョブ DAG: job_local360376249_0009
また、jarファイルの使用方法を明確にしてください。
そして、使用するバージョンは何ですか。どのバージョンを使用するか非常に混乱しています。
Elephant Bird を使うと言う人もいれば、AVRO を使うと言う人もいます。しかし、私は両方とも機能していません。
助けてください。
モハン V
installation - Twitter エレファント バード インストール
Twitter の Elephant Bird パーサーをインストールしようとしています。公式の github ページの指示に従っています。しかし、毎回、ビルドは失敗します。ビルドするたびに次のようなエラーが発生するため、正しく実行しているかどうかさえわかりません。
protobufs のインストール方法について、私は本当に混乱しています。さまざまな言語があり、どの言語を選択すればよいかわかりません。動的インストールのようなものを言います。3 日間の作業では、何も得られませんでした。
すべてのインストール手順を説明してください (前提条件のインストール手順も含む)。私はあまりにも素朴で、Linux に慣れていないことを理解してください。助けてくれて本当にありがとう。
centos7を使用しています。
編集:
- このリンクを使用して、 protobuf 2.4.1 をインストールしました。
mvn -Dmaven.test.skip=true package
ゾウ鳥ディレクトリ内。
私は得る:
どうすればいいのかわからない。誰かが私を助けることができますか?