26.
Spark DataFrame写入Hive Orc 分区表
分区表建立过程不过多演示,只给出写入hive表的过程。
//方法一:
addStgCompanyDF.write.partitionBy("dt").mode(SaveMode.Overwrite).orc("hdfs://XXXX/apps/hive/warehouse/XXXX.db/XXXXX/")
//方法二:
addStgCompanyDF.repartition(1).write.mode(SaveMode.Append).format("orc").insertInto("XXXX.XXXX")
Overwrite形式举例:
.write.mode(SaveMode.Overwrite).format("orc").saveAsTable("库名.表名")
Append形式举例:
.write.mode(SaveMode.Append).format("orc").insertInto("库名.表名")
分区表Overwrite形式举例:
.write.partitionBy("XX").mode(SaveMode.Overwrite).format("orc").saveAsTable("库名.表名")
分区表append(insertInto)形式举例:
.repartition(1).write.mode(SaveMode.Append).format("orc").insertInto("XXXX.XXXX")
数据写入hdfs后,如果通过hive去查询,表中无数据,还需要使用 msck 修复hive元数据信息。
https://community.hortonworks.com/questions/198754/msck-repair-hive-external-tables.html
- hive> Msck repair table <db_name>.<table_name>
此贴来自汇总贴的子问题,只是为了方便查询。
总贴请看置顶帖:
pyspark及Spark报错问题汇总及某些函数用法。
https://blog.csdn.net/qq0719/article/details/86003435