spark dataFrame数据写出

SparkSQL统一API写出DataFrame数据

统一API语法:

df.write.mode().format().option(K,V).save(PATH)

  • mode,传入模式字符串可选:append追加,overwrite覆盖,ignore忽略,error重复就报异常(默认的)
  • format,传入格式字符串,可选:text,csv,json,parquet,orc,avro,jdbd
  • 注意text源只支持单列df写出,也就是数据写出来只有一列
  • option设置属性,如:.option("sep", ","),像保存csv时就可以指定它的分隔符
  • save写出的路径,支持本地文件和HDFS
python 复制代码
coding:utf8
import ...
if __name__ == '_main__':
    #O.构建执行环境入口对象SparkSession
    spark = SparkSession.builder.\
        appName("test").\
        master("local[*]").\
        config("spark.sql.shuffle.partitions", 2).\
        getorcCreate()
    sc = spark.sparkContext
    #1.读取数据集
    schema = StructType().add("user_id",StringType(),nullable=True).\
        add("movie_id",IntegerType(),nullable=True).
        add("rank",IntegerType(),nullable=True).
        add("ts",StringType),nullable=True)
    df = spark.read.format("csv").\
        option("sep","\t").\
        option("header",False).\
        option("encoding","utf-8").\
        schema(schema=schema).\
        Load("../data/input/sql/u.data")
    #Write text写出,只能写出一个列的数据,需要将df转换为单列df
    #这里用F对象里的concat_ws函数,指定---分隔,连接指定的字段
    df.select(F.concat_ws("---","user_id","movid_id","rank","ts")).\
        write.\
        mode("overwrite").\
        format("text").\
        save("../data/output/sql/text")
    # Write csv
    df.write.mode("overwrite").\
        format("csv").\
        option("sep", ";").
        option("header", True).\
        save("../data/output/sql/csv")
    # Write json
    df.write.mode("overwrite").\
        format("json").\
        save("../data/output/sql/json")
    # Write parquet
    df.write.mode("overwrite").\
        format("parqeut").\
        save("../data/output/sql/parquet")
相关推荐
马剑威(威哥爱编程)12 分钟前
HarmonyOS 6.0 分布式任务调度 API 详解:把多设备玩成单设备
分布式·华为·harmonyos
蓝眸少年CY25 分钟前
Hbase - 入门到实战
大数据·数据库·hbase
嵌入式老牛43 分钟前
SST专题3-1 基于光分路器的MMC分布式控制系统架构
分布式·架构·驱动·光纤·sst
拾光向日葵1 小时前
南京林业大学2026年硕士研究生跨门类调剂政策详解
大数据·人工智能·物联网
财经资讯数据_灵砚智能1 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年4月7日
大数据·人工智能·python·信息可视化·语言模型·自然语言处理·ai编程
F_D_Z1 小时前
Word Embedding :从分布式假设到神经网络语言模型
分布式·word·embedding
大树881 小时前
【无标题】
大数据·运维·服务器·人工智能
Rabbit_QL2 小时前
【Git基础】03——Git 撤销与回退:改错了怎么办
大数据·git·elasticsearch
安科瑞小许2 小时前
35kV变电站的“智慧大脑”——综合自动化系统
大数据·网络·变电站·零碳园区
feifeigo1232 小时前
航天器交会的分布式模型预测控制(DMPC)MATLAB实现
开发语言·分布式·matlab