2

HDFS (メタデータ ファイル + 5 つのパーツ) に分散された Parquet データセットが与えられた場合、.parquetパーツを正しくマージしてデータをローカル ファイル システムに収集する方法は? dfs -getmerge ...機能しません-メタデータを実際の寄木細工のファイルとマージします..

4

3 に答える 3

2

解決策を提供する Apache Spark API を使用する方法がありますが、サードパーティ ツールを使用しないより効率的な方法が存在する可能性があります。

spark> val parquetData = sqlContext.parquetFile("pathToMultipartParquetHDFS")       
spark> parquet.repartition(1).saveAsParquetFile("pathToSinglePartParquetHDFS")

bash> ../bin/hadoop dfs -get pathToSinglePartParquetHDFS localPath

Spark 1.4 以降、DataFrame::coalesce(1)代わりに使用することをお勧めしますDataFrame::repartition(1)

于 2015-06-29T06:19:27.780 に答える
1

あなたは豚を使うことができます

A = LOAD '/path/to parquet/files' USING parquet.pig.ParquetLoader as (x,y,z) ;
STORE A INTO 'xyz path' USING PigStorage('|');

その上にImpalaテーブルを作成してから、使用することができます

impala-shell -e "query" -o <output>

Mapreduce も同じように使用できます

于 2015-06-29T14:29:30.950 に答える