3

アドホック分析のために、ログ データのコピーを S3 の Parquet に保存したいと考えています。SQLContext.parquetFile()私は主にSparkを介してParquetを使用していますが、これは and を介してテーブル全体を読み書きする操作のみを提供しているようSQLContext.saveAsParquetFile()です。

特に S3 に保存されている場合に、まったく新しいコピーを書き込まずに既存の Parquet テーブルにデータを追加する方法はありますか?

更新用に個別のテーブルを作成できることはわかっていますが、Spark ではクエリ時に対応する DataFrame の結合を形成できますが、そのスケーラビリティについて疑問があります。

必要に応じて、Spark 以外のものを使用できます。

4

2 に答える 2

4

寄木細工のファイルに追加する方法は、SaveMode.Append

`yourDataFrame.write.mode(SaveMode.Append).parquet("/your/file")`
于 2015-11-17T09:24:18.840 に答える
2

個別に作成した後に結合する必要はありませんDataFrames。クエリに関連するすべてのパスを に指定してparquetFile(paths)取得するだけDataFrameです。parquet file: の読み取りの署名がsqlContext.parquetFile(paths: String*)示唆するように。

内部では、指定したすべてのフォルダーのnewParquetRelation2すべてのファイルと、すべてのおよびが1 つのリストに入力され、同等に扱われます。.parquet_common_medata_metadata

于 2015-05-13T07:18:02.200 に答える