問題タブ [scalding]
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.
scala - '* キーワードを使用してすべてのフィールドにマップする方法を scalding しますか?
パイプのすべてのフィールドに操作を適用したいと考えています。https://github.com/twitter/scalding/wiki/Fields-based-API-Reference で、「'* (ここと他の場所) を使用してすべてのフィールドを意味することができます」と表示されました。しかし、どういうわけか私はそれを機能させることに成功しません。誰かが私に例を見せてくれるほど親切でしょうか?
最初は次のようなものがあります
私は今、何かのようなすべての分野に適用したいと考えています
?
serialization - Scalding でのケースクラスの読み書き
誰かが、scalding で単純なケース クラスを読み書きする方法を説明するリンクを教えてもらえますか? デフォルトのシリアル化スキームはありますか?
たとえば、com.twitter.algebird.Moments のパイプを作成するジョブがあります。パイプを HDFS に書き込み、別のジョブを使用して読み取りたいと考えています。
Fer の例: 次を使用して記述しようとしました。
そして、次を使用して読み取ります。
次のエラーが表示されます。
scala - HTTP リクエストをパイプとして使用する
インターネットから多数の URL を取得するために必要なScaldingに慣れてきました。
どうやら、Scala の標準ライブラリには、HTTP リクエストを実行するための単一のクラスが用意されていません。
私が見た裸の Java ソリューションの多くは冗長すぎるように見えるので、Scalding Pipe 機構を使用してこれを行うことができるのか、それとも意図した種類のタスクではないのか疑問に思っていました。
また。Dispatchやscalaj-httpなどの外部ライブラリを使用する場合:結果をパイプに直接フェッチできますか?それとも、さらに配管が必要ですか?
gradle - Gradle でビルドされた jar がメイン クラスを見つけられない
職場では、Scalding プロジェクトで gradle を使用しており、スタックから手を離すための最も簡単な仕事を考え出そうとしています。
私のクラスは次のようになります:
と住んでいますin playground/src/org/playground/readCsv.scala。私のビルドスクリプトは次のようになります。
これは正常にコンパイルおよびビルドされますが、jar を実行しようとすると、次のエラーがスローされます。
私の経験に基づいた推測では、ジョブを拡張することは、Jobいくつかの規則に準拠することができず、有効なメインクラスのようには見えませんが、それが見つからないことについて不平を言うとは思わないでしょう.
他の可能性は、それを実行するのjava -jar jarnameが正しくないということです.hadoopまたはそれらの行に沿って何かで実行する必要があります。
とにかく、検証するために:私のセットアップの何が問題なのですか?
scala - カスタム スカルディング タップ (または Spark の同等品)
Hadoop クラスター (通常は HBase) にあるデータを、カスタム ファイル形式でダンプしようとしています。
私がやりたいことは、多かれ少なかれ次のとおりです。
- Scalding パイプなど、レコードの分散リストから開始する
- いくつかの計算関数によるアイテムのグループ化
- 同じグループに属するアイテムが同じサーバーに常駐するようにする
- 各グループで、並べ替えを含む変換を適用し、結果をディスクに書き込みます。実際、一連の MapFile を作成する必要があります。これらは基本的にソートされた SequenceFile とインデックスです。
上記を Scalding で実装したいのですが、最後の手順をどうすればよいかわかりません。
もちろん、分散された方法でソートされたデータを書き込むことはできませんが、データをチャンクに分割し、ローカルにソートされた各チャンクを書き込むことは可能です。それでも、map-reduce ジョブの MapFile 出力の実装が見つかりません。
非常に大きなデータをソートするのは悪い考えだと認識しています。これが、単一のサーバーでもデータをチャンクに分割する予定の理由です。
Scalding でそのようなことを行う方法はありますか? おそらく、Cascading を直接使用するか、Spark などの他のパイプライン フレームワークを使用しても問題ないでしょう。
java - マッパーやリデューサーなしで実行されるジョブ
ローカルモードでうまく動作するscaldingを使用してジョブを作成しました。しかし、(同じファイルで)hdfsモードで実行しようとすると、何もしません。より正確には、最初のステップにはタスク (mapper も reducer) もありません。その後のステップは明らかに何もしません。
例外のログを grep しようとしましたが、コードを try-catch でラップしました (scalding では、ジョブ定義はコンストラクターにあり、run メソッドもラップしました)。
何らかの理由で、カスケードが入力ファイルを無視することを決定したのでしょうか? Avro deflate ファイルです。
更新: さらに掘り下げると、次の行が表示されます。
ジョブ xml では、mapred.input.dir プロパティが自分のファイルへのパスに設定されています。
JobInProgress は、ジョブ xml ファイルに存在しない mapred.job.split.file から情報を取得しているようです