Spark将数据写入分区的Hive表非常慢

时间:2016-08-08 07:00:31

标签: hadoop apache-spark pyspark spark-dataframe

我想以正常的可读文本格式将Spark数据帧存储到Hive表中。为此我先做了

"data-gallery": ""

我的DataFrame就像:

sqlContext.sql("SET spark.sql.hive.convertMetastoreParquet=false")

我试图通过以下方式编写:

final_data1_df = sqlContext.sql("select a, b from final_data")

但这非常慢,甚至比HIVE表写的慢。所以为了解决这个问题,我想通过Hive DDL语句定义分区,然后加载数据,如:

final_data1_df.write.partitionBy("b").mode("overwrite").saveAsTable("eefe_lstr3.final_data1")

但是这给了分区的Hive表但仍然是镶木地板格式的数据。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:-1)

当您显式创建表时,该DDL定义表。 通常,文本文件是Hive中的默认文件,但它可能已在您的环境中更改。

添加"存储为文本文件"在CREATE语句的末尾,以确保表是纯文本。