問題タブ [sequencefile]
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.
java - Sparkでシーケンスファイルから行の範囲を抽出するには?
非常に大きなシーケンス ファイルがあり、最初の 1000 行のみをローカルで処理したいとします。どうやってやるの?
現在、私のコードは次のようになっています
hive - Parquet ファイル形式からシーケンス ファイル形式への変換
ハイブ テーブルを HDFS の場所に Parquet 形式で保存しています。この場所にある寄木細工のファイルをシーケンス ファイル形式に変換し、その上にハイブ テーブルを構築できますか? この変換を行う手順はありますか?
hadoop - Spark で Hive を使用して gzip から sequenceFile 形式にデータを変換する
Sparkランタイムを介して大きなgzipファイルをハイブに読み込んで、SequenceFile形式に変換しようとしています
そして、私はこれを効率的に行いたいと思っています。
私の知る限り、Spark は、テキスト ファイルの場合と同様に、gzip ファイルごとに 1 つのマッパーのみをサポートします。
読み取られる gzip ファイルのマッパーの数を変更する方法はありますか? または寄木細工のような別の形式を選択する必要がありますか?
私は現在立ち往生しています。問題は、私のログ ファイルが txt 形式に保存された json のようなデータであり、その後 gzip されたことorg.apache.spark.sql.json
です。
私が見た例では、データを SequenceFile に変換すると、csv 形式の単純な区切り文字がいくつかあります。
私はこのクエリを実行していました:
しかし、今は次のように書き直さなければなりません。
これはこれを行うための最適な方法ですか、それともこの問題に対するより簡単なアプローチはありますか? 助けてください!
nullpointerexception - SequenceFile.Writer が NullPointerException につながる
こんにちは、次のコードを使用して mahout ライブラリで単純なシーケンス ファイルを作成しようとしています。コードの実行中に、空のファイルを作成した後に NullPointerException が発生します。
エラー:
問題を整理するために、誰かがこれについて私を助けてくれませんか?
python - 高速 pyspark シーケンスファイル検索
次の形式の比較的小さな pyspark sequenceFile (~8gb) を使用しています。
〜150,000のエントリがあります
mapreduce は非常に高速なプラットフォームであり、db をすばやく検索してバイナリを解凍し、ファイル内の興味深いデータをすばやく取得するのに優れていることは理解しています。計算ごとに 1 つまたは 2 つのファイルに関心があります。
では、hadoop sequenceFile 内の特定のエントリに繰り返しアクセスする最良の方法は何ですか?
- 通話
RDD.lookup("ID")
(1回の入力に時間がかかりそう)- なぜこれが遅いのかを調べてみましたが、 のような機能が
sortByKey
あまり役に立たないように見えました。 - 各ルックアップには約 150 秒かかります
- なぜこれが遅いのかを調べてみましたが、 のような機能が
- 使用
RDD.filter(xxx)
(一度に多くの読み取りが可能ですが、再アクセスにはまだ時間がかかります) - 実行
dict(RDD.collect())
(非常に高速ですが、大量のメモリと長い初期読み取り時間が必要です)
だから...これは私が今いる場所のようなものです。
注: 私はフォーマットの切り替えに反対しているわけではありません。おそらく、sequenceFiles は適していません。ただし、サイズは適切であり、これがデータの提供方法です。
scala - Spark Code で何が起こっているのか
パス変数には、一部のテキスト ファイルの場所の csv があります。ここでのコード マッピングとは正確には何ですか? ここで何が起こっているのか説明してくれませんか。私は少し混乱しています。
java - javaクラスをscalaクラスで拡張して書き込み可能にする方法は?
JavaクラスオブジェクトをsaveAsSequenceFileにする必要があります(何らかの理由でクラス自体を修正できません)。そのため、書き込み可能にする必要があります。writeおよびreadFieldsメソッドを実装することにより、Java クラスを Scala クラス (Scala のみを使用できます)で拡張しようとしています。ファイルに保存できますが、読み取ることができません:
ClassBWritable の初期コンストラクターを作成する必要があるようですが、以下は機能しません。
初期コンストラクターを作成する方法、または私の問題を解決する方法は? 私のクラス(その定義を修正するか、追加のコンストラクターを追加する必要があります):
ここでファイルに保存する方法:
ファイルからの読み取り方法:
私の例外:
hadoop - HDFS データの最も効率的なストレージ形式
HDFS の専用ストレージ サーバーに大量のデータを保存する必要があります。これは、履歴データのある種のアーカイブです。格納されるデータは行指向であり、数十の異なる種類のフィールドがあります。それらのいくつかは文字列であり、いくつかは整数であり、いくつかの Float、Short、ArrayList、および Map もあります。
アイデアは、MapReduce または Spark ジョブを使用してデータが時々スキャンされるということです。
現在、キーとして NullWritable を、値としてカスタム WritableComparable クラスを使用して、それらを SequenceFiles として保存しています。このカスタム クラスには、これらすべてのフィールドが定義されています。
私は 2 つの目標を達成したいと考えています。1 つはデータのサイズを最適化することです。データは非常に大きくなり、数週間ごとに新しいサーバーを追加する必要があり、コストは常に増加しています。もう 1 つは、新しいフィールドを簡単に追加できるようにすることです。現在の状態では、新しいフィールドを追加したい場合は、古いデータをすべて書き直す必要があります。
このクラス内で EnumMap を使用してこれを達成しようとしました。新しいフィールドを簡単に追加でき、データのサイズが 20% 削減されたため、非常に良い結果が得られました (レコード内の多くのフィールドが空であることが多いためです)。しかし、私が書いたコードは見栄えが悪く、この EnumMap にリストとマップを追加しようとすると、さらに醜くなります。同じタイプのデータには問題ありませんが、すべてのフィールドを結合しようとするのは悪夢です。
そこで、他の一般的な形式をいくつか考えました。Avro と Parquet を試しましたが、データのサイズは Enums で試す前のカスタム クラスの SequenceFiles とほぼ同じです。したがって、古いデータを書き換える必要なく新しいフィールドを追加する問題は解決しますが、データのサイズを最適化する可能性はもっとあると感じています。
もう 1 つ確認することは、もちろん、データのロードにかかる時間です (これにより、bzip2 圧縮を使用しても問題ないか、パフォーマンスのために gzip に戻らなければならないかがわかります)。これを進めてください。誰かが他の解決策やヒントを提案してくれるのではないかと思っていました。
すべてのコメントに感謝します。
azure - Databricks テーブルの Spark readstream (org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat)
以下の形式のデータブリック ビュー (default.view_live) があります。
Serde ライブラリ org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe 入力フォーマット org.apache.hadoop.mapred.SequenceFileInputFormat 出力フォーマット org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat ストレージ プロパティ [serialization.format=1]
そのビューのデータブリックでスパーク読み取りストリームを作成できますか?