2017-08-02 5 views
0

spark sessionを使用してデータフレームをハイブテーブルに保存しています。コードは以下の通りです。スパーク2データフレームハイブに保存 - コンパクション

df.write.mode(SaveMode.Append).format("orc").insertInto("table") 

データがカフカから発せられます。これは、1日中膨大な量のデータになる可能性があります。データフレームの保存は内部的にハイブ圧縮を行いますか?テーブルの挿入に影響を与えずに定期的な間隔で圧縮を行う最良の方法は何ですか?あなたの例では

+0

データフレームで何をしたいですか? Plsは詳細に説明します。 –

+0

ORC形式のハイブテーブルに保存します。これは上のコードスニペットに示されています –

答えて

0

データが膨大な量

df.write..mode(SaveMode.Append).format("orc").partitionBy("age") 

にすることができて、あなたはpartitionByを追加する必要がありますか、また 以下のように私は、これが最初のスパークジョブ自体で一時テーブルを登録することで行っている方法をアーカイブすることができますHiveContextのSQLメソッドを利用して、tempテーブルのデータを使用してハイブで新しいテーブルを作成します。たとえば、データフレームdfとHiveContext hcがある場合、一般的なプロセスは次のようになります。

df.registerTempTable("my_temp_table") 
hc.sql("Insert into overwrite table_name PARTITION SELECT a,b, PARTITION_col from my_temp_table") 
関連する問題