問題タブ [parquet]
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.
hadoop - Parquet API にはキーの概念がありませんか?
わかりましたので、spark を介して寄木細工のファイルにキーを書き込むことができないという例外を取得した後、API を調べたところ、これだけが見つかりました。
(私の仮定は間違っている可能性があります= D、どこかに別のAPIがあるかもしれません。)
わかりましたこれは、コンテナファイルから具体化されているデータを投影/制限できるため、いくつかの歪んだ意味があります。ただし、念のため。Parquet ファイルには、シーケンス ファイルの「キー」値の概念がありませんよね?
これは少し奇妙だと思います。Hadoop インフラストラクチャは、シーケンス ファイルにキーがある可能性があるという事実に基づいて構築されています。そして、このキーは、局所性のためにデータをブロックに分割するために自由に使用されると思います(HDFSレベルのcではありません)?Spark には、リダクションや結合などを行うコードと連携する API 呼び出しが多数あります。具体化されたオブジェクトの本体からキーをマップするために、追加の手順を実行する必要があります。変。
では、寄木細工の世界でキーが一流の市民ではない理由はありますか?
json - JSON オブジェクトのファイルを Parquet ファイルに変換する
動機: データを Apache Drill にロードしたい。Drill が JSON 入力を処理できることは理解していますが、それが Parquet データでどのように機能するかを確認したいと考えています。
最初にデータを Hive などにロードしてから、Parquet コネクタの 1 つを使用して出力ファイルを生成することなく、これを行う方法はありますか?
hadoop - Pig は自身の中間データを読み取ることができません
まず最初に、クラスターに従って Apache Pig バージョン 0.11.0-cdh4.3.0 (再エクスポート) を実行しています。ただし、私のビルドでは 0.11.0-cdh4.5.0 を使用していますが、これは賢明な決定ではありませんが、両方とも Pig v0.11.0 であるため、ここで発生している問題とは関係ないと思います
構造的に次のようなスクリプトがあります (両方のカスタム udf が DataByteArray 型を返します。これは有効な Pig 型であることがわかります)。
Pig はこれを 2 つの mapreduce ジョブに分割します。CubeDimensions が最初のジョブで発生するか、2 番目で発生するかはわかりませんが、最初のジョブの削減段階で発生すると思われます。
したがって、2 番目のジョブのマッピング ステージでは、中間データを読み取るだけで、次のことが起こります。
「予期しないデータ型 49 がストリームに見つかりました。」@ org.apache.pig.data.BinInterSedes:422
番号が 48 と 49 の両方であり、BinInterSedes クラスにはどちらも存在しないことがわかりました。
しかし、これは豚自身の中間出力であるため、どこで問題が発生した可能性があるのか よくわかりません。私のカスタム UDF はどちらも有効な型を返します。Pig は、認識している型のみを使用して確実に保存することを期待しています。
どんな助けでも大歓迎です。
hadoop - JSON Serde ベースの Hive テーブルから Parquet テーブルにデータをロードする際の問題
HIVE
を使用して定義されたテーブルがありますJSON Serde
。Shark
ディストリビューション ( http://shark.cs.berkeley.edu/ )を使用しています。定義は次のとおりです。
このテーブルにデータを正常にロードできます。今、私はParquet
ベーステーブルを作成しましたHIVE
。
ここで、次のコマンドを使用して、JSON Serde
テーブルからテーブルにデータをロードしようとします。Parquet
insert
ステートメントは正常に完了します。しかし、Parquet
テーブル内のデータをクエリすると、すべての列にNULL
値が入力されます。同様の問題をオンラインで検索しましたが、同様の問題はまだ見当たりません。ここで何がうまくいかないのか、誰か考えている人はいますか?
ありがとう、ヴィサフ
hadoop - Hive で大文字と小文字を区別する列名
パーティションを持つ外部 HIVE テーブルを作成しようとしています。一部の列名には大文字が含まれています。これにより、大文字の列名の値が NULL として返されるため、テーブルの作成中に問題が発生しました。次に、SERDEPROPERTIES を使用してこれを処理するために ParquetSerDe を変更しましたが、これは外部テーブル (パーティション分割されていません) で動作していました。今、外部テーブル WITH パーティションを作成しようとしていますが、大文字の列 (例: FieldName) にアクセスしようとすると、このエラーが発生します。tablename から FieldName を選択します。
考えられる提案はありますか?データ ソースのスキーマを変更できません。
これは、テーブルを作成するために使用するコマンドです-
次に、パーティションを追加します。
hive - 寄木細工の裏打ちされたテーブルが壊れています - HIVE - 末尾のマジック ナンバー [80, 65, 82, 49] が予想されますが、[1, 92, 78, 10] が見つかりました
ディストリビューション: CDH-4.6.0-1.cdh4.6.0.p0.26 Hive バージョン: 0.10.0 Parquet バージョン: 1.2.5
圧縮と列指向ストレージを利用するために、最近 Parquet に変換したログ ファイルでいっぱいの 2 つの大きな日付パーティション化された外部 Hive テーブルがあります。これまでのところ、私はパフォーマンスにとても満足しています。
最近、開発チームがログにフィールドを追加したため、両方のログ テーブルに列を追加する必要がありました。1つは完全に機能しましたが、もう1つは破損しているようです。変更を元に戻しましたが、まだテーブルをクエリできません。
データは (変更されていないため) 問題ないと確信していますが、メタストアに何か問題があります。msck 修復テーブルは、ドロップ/作成後にパーティションを再作成しますが、以下のエラーを処理しません。それを修正できることが 2 つありますが、どちらも私を満足させるものではありません。
- データを再挿入します。
- 本番クラスターからテーブルにデータをコピーして戻します。
上記の2つのオプションに頼らなくてもテーブルを修正できる、私が知らないコマンドがあることを本当に望んでいます。おっしゃる通り、データは問題ありません。私はエラーから抜け出し、いくつかの結果を得ましたが、それらはすべて、使用していたものではないImpalaに関連しています。
問題はこれです:
原因: java.lang.RuntimeException: hdfs://hdfs-dev/data/prod/upload-metrics/upload_metrics_hist/dt=2014-07-01/000005_0 は Parquet ファイルではありません。末尾にマジック ナンバー [80, 65, 82, 49] が期待されていましたが、[1, 92, 78, 10] が見つかりました
フルエラー
hdfs - テキスト ファイルを Parquet にカスケードする
Cascading を使用してファイルを Parquet に変換しようとしています。しかし、私は以下のエラーが発生しています。
エラー
コード
scalding - Scalding は、Parquet を使用した述語プッシュダウンによるレコード フィルタリングをサポートしていますか?
フィルターに失敗するレコードを読み取る必要がないため、明らかに速度が向上します。Spark がサポートしていることはわかりますが、Scalding を使用した方法に関するドキュメントは見つかりませんでした。
mapreduce - 寄木細工: 特定の列をメモリに読み込む
mysql テーブルを寄木細工のファイル (avro ベース) にエクスポートしました。今、そのファイルから特定の列を読みたいと思っています。特定の列を完全に読み取るにはどうすればよいですか? Java コードの例を探しています。
必要な列を渡してテーブルの 2D 配列を取得できる API はありますか?
parquet - ParquetFileWriter を使用して寄木細工のファイルにデータを書き込みますか?
私は寄木細工に新しい蜂です!parquetWriterを使用して寄木細工のファイルにデータを書き込むために、以下のコード例を試しました。
http://php.sabscape.com/blog/?p=623
上記の例では parquetWriter を使用していますが、ParquetFileWriter を使用して効率的に parquet ファイルにデータを書き込みたいと考えています。
例またはParquetFileWriterを使用して寄木細工のファイルを作成する方法を提案してください。