4
SparkデータフレームをHiveテーブルに通常の読み取り可能なテキスト形式で保存したい。Sparkパーティションハイブテーブルへのデータの書き込みが遅い
final_data1_df = sqlContext.sql("select a, b from final_data")
と私はでそれを記述しようとしています::そうすることのために私が最初にやった
sqlContext.sql("SET spark.sql.hive.convertMetastoreParquet=false")
私のデータフレームは次のようである
final_data1_df.write.partitionBy("b").mode("overwrite").saveAsTable("eefe_lstr3.final_data1")
が、これはより遅く、非常に遅いですHIVEテーブル書き込み。だから私はハイブDDLステートメントを使用してパーティションを定義し、同様にデータをロードすると考えられ、この解決します
sqlContext.sql("""
CREATE TABLE IF NOT EXISTS eefe_lstr3.final_data1(
a BIGINT
)
PARTITIONED BY (b INT)
"""
)
sqlContext.sql("""
INSERT OVERWRITE TABLE eefe_lstr3.final_data1 PARTITION (stategroup)
select * from final_data1""")
をが、これはパーティションハイブテーブルそれでも寄木細工形式のデータを与えています。私はここに何かを逃していますか
正確なエラーメッセージは何ですか?また、あなたの 'sqlContext = HiveContext(sc)'は本当ですか? – KartikKannapur
はい私の 'sqlContext'は実際には' HiveContext'です。私は何の誤りもありません。最初のケースでは、書き込みが遅いです。 2番目のケースでは、データは依然として寄木張りです。 – abhiieor
これで何か解決策がありますか? –