問題タブ [orc]

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.

0 投票する
0 に答える
233 参照

sorting - ハイブ - インデックス付きまたはソート済みの列を検索すると、バケット全体が読み取られます

ハイブのクエリはソートを使用せず、バケット全体を読み取ります。それは正常ですか、それとも誤解ですか。

テーブル :

  1. 仕様:

    • 私のテーブルはバケット化され、「col_a」列でソートされています。
    • テーブルは ORC 形式です
  2. 結果:

    • 「col_a」を照会すると、バケット全体が読み取られます
    • 「col_b」にインデックスを付けて「col_b」をクエリすると、バケット全体以上が読み取られます
  3. テーブル構成:

    • 入力フォーマット: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
    • outputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
    • serializationLib: org.apache.hadoop.hive.ql.io.orc.OrcSerde
    • バケット列: [col_a]
    • sortCols: col_a
    • オーダー : 1
  4. 挿入してテーブルに入力し、選択して値を取得します。

    /li>
  5. 私が思ったこと

    並べ替えを使用すると、バケット全体を読み取るのではなく、特定の行または行の範囲にアクセスできるようになると思いました。また、インデックスによってバケット内の行または範囲が得られると考えました。私が間違っている ?ところで、お時間をいただきありがとうございます。

0 投票する
1 に答える
1133 参照

hadoop - ハイブ。既存の ORC ストレージのストライプ サイズを確認する

生ログからデータを解析し、それを HIVE の ORC テーブルに書き込む 2 つのスクリプトがあります。あるスクリプトではより多くの列が作成され、別のスクリプトではより少ない列が作成されます。dateフィールドごとに分割された両方のテーブル。

その結果、さまざまなサイズのファイルを持つ ORC テーブルができました。列数が多いテーブルは多くの小さなファイル (各パーティション内のファイルあたり最大 4 MB) で構成され、列が少ないテーブルは少数の大きなファイル (各パーティション内のファイルあたり最大 250 MB) で構成されます。

ORCのstripe.size設定が原因だと思います。しかし、既存のテーブルのストライプのサイズを確認する方法がわかりません。「show create」や「​​describe」などのコマンドでは、カスタム設定は表示されません。つまり、テーブルのストライプ サイズは 256 MB にする必要があります。

既存のORCテーブルのstripe.sizeをチェックするためのアドバイスを探しています。または、ORC テーブル内のファイル サイズがそのテーブル内のデータにどのように依存するかを説明します。

Ps後で、Map Reduce を使用してそのテーブルから読み取っていて、大きなファイルを含むテーブルのレデューサーの数が少ない場合に問題になります。

0 投票する
2 に答える
4725 参照

hadoop - ORC として保存されている HIVE テーブルに外部で作成された ORC ファイルをロードする方法は?

ORC として保存されるマネージド ハイブ テーブルを作成しました。.txt ファイルをロードすると正常に動作しますが、そのテーブルに ORC ファイルをロードできません。区切り文字と何か関係がありますか? または私は何かが欠けていますか?

0 投票する
0 に答える
485 参照

hadoop - ORC ファイルの行の区切り文字としてコンマ (,) を使用する

JavaでORCファイルを作成しています。行ごとに、フィールドをカンマで区切る必要があります。ここに私のJavaコードがあります:

これは正しい作成方法ですか?

Hive テーブルにデータをロードしようとしています。これは私がテーブルを作成した方法です:

しかし、データをロードできません。テーブルからデータを読み取っているとき、クラスカースト例外がスローされますorg.apache.hadoop.hive.ql.io.orc.OrcStruct cannot be cast to org.apache.hadoop.io.Text

0 投票する
1 に答える
3309 参照

amazon-s3 - Snappy 圧縮を使用して、Spark データフレームを ORC 形式で書き込む

S3 に保存されているテキスト ファイルを読み取り、Spark データフレームを使用して ORC 形式で S3 に書き戻すことに成功しました。-inputDf.write().orc(outputPath);
私ができないのは、snappy 圧縮で ORC 形式に変換することです。コーデックをスナッピーに設定して書き込み中にオプションを指定しようとしましたが、Sparkはまだ通常のORCとして書き込んでいます。Spark Dataframes を使用して S3 への Snappy 圧縮を使用して ORC 形式で書き込むにはどうすればよいですか?

0 投票する
0 に答える
804 参照

hadoop - 動的パーティション分割を使用した Hive 挿入クエリ

一時テーブルからデータを挿入する必要がある orc 形式のパーティション化およびクラスター化されたハイブ テーブルがあります。

テーブルステートメントを作成します: orc テーブル:

一時テーブルに 5 つのレコードを追加: hive> select * from DYN_TEMP_TABLE; OK

かかった時間: 0.166 秒、フェッチされた: 5 行

以下の動的挿入クエリはエラーです:

エラー メッセージ: このタスクの診断メッセージ: エラー: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: 行の処理中に Hive ランタイム エラーが発生しました (タグ = 0)

このエラーの原因を指摘してください。