df.write.csv

2024-09-06 17:28
文章标签 csv df write

本文主要是介绍df.write.csv,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

# 将 DataFrame 写入 CSV 文件
# 拆分 ArrayType 列
df_exploded = df.withColumn("interests", explode("interests"))
print("\nExploded DataFrame:")
df_exploded.show(truncate=False)# 写入 CSV 文件
df_exploded.write.csv("output_data")# 从 CSV 文件读取数据并创建 DataFrame
read_df = spark.read.csv("output_data", header=False, inferSchema=True)
print("\nRead DataFrame from CSV:")
read_df.show(truncate=False)
Exploded DataFrame:
+-----+---+------+---------+-----------+----------+-------------------+--------+
|name |age|weight|interests|has_license|birthday  |last_checkup       |balance |
+-----+---+------+---------+-----------+----------+-------------------+--------+
|Alice|34 |65.5  |reading  |true       |1990-01-01|2023-01-01 10:00:00|12345.67|
|Alice|34 |65.5  |swimming |true       |1990-01-01|2023-01-01 10:00:00|12345.67|
|Bob  |45 |80.2  |gaming   |false      |1979-05-15|2023-05-15 12:00:00|54321.01|
|Bob  |45 |80.2  |traveling|false      |1979-05-15|2023-05-15 12:00:00|54321.01|
|Cathy|29 |55.0  |cooking  |true       |1995-08-20|2023-08-20 14:00:00|7890.12 |
|Cathy|29 |55.0  |painting |true       |1995-08-20|2023-08-20 14:00:00|7890.12 |
+-----+---+------+---------+-----------+----------+-------------------+--------+Read DataFrame from CSV:
+-----+---+----+---------+-----+----------+-------------------+--------+
|_c0  |_c1|_c2 |_c3      |_c4  |_c5       |_c6                |_c7     |
+-----+---+----+---------+-----+----------+-------------------+--------+
|Alice|34 |65.5|reading  |true |1990-01-01|2023-01-01 10:00:00|12345.67|
|Alice|34 |65.5|swimming |true |1990-01-01|2023-01-01 10:00:00|12345.67|
|Bob  |45 |80.2|gaming   |false|1979-05-15|2023-05-15 12:00:00|54321.01|
|Bob  |45 |80.2|traveling|false|1979-05-15|2023-05-15 12:00:00|54321.01|
|Cathy|29 |55.0|cooking  |true |1995-08-20|2023-08-20 14:00:00|7890.12 |
|Cathy|29 |55.0|painting |true |1995-08-20|2023-08-20 14:00:00|7890.12 |
+-----+---+----+---------+-----+----------+-------------------+--------+

 output_data是一个文件夹,如下:

根据文件类型,output_data 文件夹中的内容可以分为以下几类:

  1. 成功标记文件

    • .SUCCESS:这是一个特殊的文件,用于标记数据写入操作已经成功完成。在分布式文件系统(如 HDFS)中,这个文件的存在表示数据写入操作已经成功完成
    • .SUCCESS.crc:这是一个校验和文件,用于验证 .SUCCESS 文件的完整性。在分布式文件系统中,校验和文件用于确保数据的完整性
  2. 数据文件

    • .part-00000-b9d20695-e9a6-4e1e-9012-a4708a9ed543-c000.csv:这是一个数据文件,包含了写入的数据。文件名中的 .part-00000 表示这是第一个数据分片,后面的数字和字母是随机生成的,用于唯一标识这个数据分片。
    • .part-00002-b9d20695-e9a6-4e1e-9012-a4708a9ed543-c000.csv:这是一个数据文件,包含了写入的数据。文件名中的 .part-00002 表示这是第二个数据分片
    • .part-00005-b9d20695-e9a6-4e1e-9012-a4708a9ed543-c000.csv:这是一个数据文件,包含了写入的数据。文件名中的 .part-00005 表示这是第五个数据分片
    • .part-00007-b9d20695-e9a6-4e1e-9012-a4708a9ed543-c000.csv:这是一个数据文件,包含了写入的数据。文件名中的 .part-00007 表示这是第七个数据分片
  3. 校验和文件

    • .part-00000-b9d20695-e9a6-4e1e-9012-a4708a9ed543-c000.csv.crc:这是一个校验和文件,对应于 .part-00000-b9d20695-e9a6-4e1e-9012-a4708a9ed543-c000.csv 文件。用于验证数据的完整性。
    • .part-00002-b9d20695-e9a6-4e1e-9012-a4708a9ed543-c000.csv.crc:这是一个校验和文件,对应于 .part-00002-b9d20695-e9a6-4e1e-9012-a4708a9ed543-c000.csv 文件。
    • .part-00005-b9d20695-e9a6-4e1e-9012-a4708a9ed543-c000.csv.crc:这是一个校验和文件,对应于 .part-00005-b9d20695-e9a6-4e1e-9012-a4708a9ed543-c000.csv 文件。
    • .part-00007-b9d20695-e9a6-4e1e-9012-a4708a9ed543-c000.csv.crc:这是一个校验和文件,对应于 .part-00007-b9d20695-e9a6-4e1e-9012-a4708a9ed543-c000.csv 文件。

这些文件通常是在使用分布式文件系统(如 HDFS)时生成的,用于存储和管理大数据集。每个数据分片(.part-XXXXX.csv 文件)包含了数据的一部分,而对应的校验和文件(.part-XXXXX.csv.crc 文件)用于验证数据的完整性。.SUCCESS 文件和 .SUCCESS.crc 文件则用于标记数据写入操作的完成状态。

第二个分片

Alice,34,65.5,reading,true,1990-01-01,2023-01-01T10:00:00.000+08:00,12345.67
Alice,34,65.5,swimming,true,1990-01-01,2023-01-01T10:00:00.000+08:00,12345.67

第五个分片

Bob,45,80.2,gaming,false,1979-05-15,2023-05-15T12:00:00.000+08:00,54321.01
Bob,45,80.2,traveling,false,1979-05-15,2023-05-15T12:00:00.000+08:00,54321.01

第七个分片

Cathy,29,55.0,cooking,true,1995-08-20,2023-08-20T14:00:00.000+08:00,7890.12
Cathy,29,55.0,painting,true,1995-08-20,2023-08-20T14:00:00.000+08:00,7890.12

这篇关于df.write.csv的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1142645

相关文章

Unstructured cannot write mode RGBA as JPEG 错误解决

Unstructured cannot write mode RGBA as JPEG 错误解决 0. 错误详细1. 解决方法 0. 错误详细 Image Extraction Error: Skipping the failed imageTraceback (most recent call last):File "/root/miniconda3/envs/learn-y

anaconda3下的python编程练习-csv翻译器

相关理解和命令 一、环境配置1、conda命令2、pip命令3、python命令 二、开发思路三、开发步骤 一、环境配置 1、conda命令 镜像源配置 conda config --show channels //查看镜像源conda config --remove-key channels //删除添加源,恢复默认源#添加镜像源conda config --ad

一种快速生成CSV的方法

事情是这个样子的 在QQ群在聊把如何100万数据导出成CSV文件?会不会很慢? 俺回了一句“现在的机器性能好,没啥问题”。 然后大家开始谈论机器的配置了。哎,俺的机器配置有点差。 然后俺就进行了一个测试。 测试数据 数据定义         public struct Rec         {             public int v1;             publi

70-java write类应用场景

在Java中,我们可以使用java.io包中的FileWriter和BufferedWriter类来写入数据到文件。以下是一个简单的例子,展示了如何使用FileWriter和BufferedWriter来写入数据到文件: import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;pub

SylixOS write 0 字节问题

1 问题描述 在移植中间件过程中,在SylixOS调用write函数写入0字节的数据到文件中时,会导致对应的中间件测试用例失败,失败的原因是文件系统中的write函数在Linux系统和SylixOS有区别,两种实现的差别如下。 2 write函数的实现机制 2.1 SylixOS实现机制 在SylixOS下通过write 函数写数据到普通文件中时,第一步会判断写入的数据是否为0,如果是0直

python xlsx 转csv

# coding = utf-8import osimport pandas as pdimport csvfrom openpyxl import load_workbookdef get_filename(path_filename):"""获取文件所在文件夹路径、带拓展文件名、文件名、拓展名:param path_filename: 带拓展完整路径:return: 文件所在文件夹路径

Java 入门指南:Java 并发编程 —— Copy-On-Write 写时复制技术

文章目录 Copy-On-Write使用场景特点缺点CopyOnWrite 和 读写锁相同点之处不同之处 CopyOnWriteArrayList适用场景主要特性方法构造方法CopyOnWriteArrayList 使用示例 CopyOnWriteArraySet适用场景主要特性方法构造方法使用注意事项CopyOnWriteArraySet 使用示例 Copy-On-Writ

【linux 磁盘管理】Linux磁盘管理常用三个命令为df、du和fdisk。

Linux磁盘管理好坏管理直接关系到整个系统的性能问题。 Linux磁盘管理常用三个命令为df、du和fdisk。 df:列出文件系统的整体磁盘使用量du:检查磁盘空间使用量fdisk:用于磁盘分区 [root@izbp1f0leha0lvmqfhigzpz code]# dfFilesystem 1K-blocks Used Available Use% Mounted

Linux df命令详解,Linux查看磁盘使用情况

《网络安全自学教程》 df 一、字段解释二、显示单位三、汇总显示四、指定目录五、指定显示字段六、du和df结果不一样 df(disk free)命令用来查看系统磁盘空间使用情况。 参数: -h:(可读性)显示单位,换算单位1024字节-H:(可读性)显示单位,换算单位1000字节-k:以KB为单位,显示磁盘大小-m:以MB为单位,显示磁盘大小--total:汇总-i:

Python文件读写readline()、readlines()、CSV库、pandas库

1.readline() .readline()每次只读取一行,通常比 .readlines()慢得多;仅当没有足够内存可以一次读取整个文件时,才应该使用.readline()。  f = open('poem.txt','r') result = list() for line in open('poem.txt'): line = f.readline() print line