PySaprk 将 DataFrame 数据保存为 Hive 分区表

本文介绍了如何使用PySpark将DataFrame数据保存到Hive分区表,包括创建分区表、向已存在表插入数据,并讨论了不同插入模式及文件数量设置。重点关注df.write.saveAsTable()方法和动态分区的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PySaprk 将 DataFrame 数据保存为 Hive 分区表

创建 SparkSession

from pyspark.sql import SparkSession

spark = SparkSession.builder.enableHiveSupport().appName('test_app').getOrCreate()
sc = spark.sparkContext
hc = HiveContext(sc)

1. Spark创建分区表

# 可以将append改为overwrite,这样如果表已存在会删掉之前的表,新建表
df.write.saveAsTable(save_table, mode='append', partitionBy=['pt_day'])

saveAsTable 会自动创建hive表,partitionBy指定分区字段,默认存储为 parquet 文件格式。对于从文件生成的DataFrame,字段类型也是自动转换的,有时会转换成不符合要求的类型。

需要自定义字段类型的,可以在创建DataFrame时指定类型:

from pyspark.sql.types import StringType, StructType, BooleanType, StructField

schema = StructType([
    StructField("vin", StringType(), True),
    StructField("cust_id", StringType(), True),
    StructField("is_maintain
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值