楓尘君一直觉得将df存为csv文件是一个非常简单操作处理,但是当查阅资料之后发现网上有很多误导和错误,本着从实际出发的原则,记录一下过程:

1. 发现问题

背景:楓尘君想利用spark处理较大的数据集,然后用python将提取特征后的数据集建模

用spark将数据筛选后生成dataframe类型的表: data
于是从网上查看了一下将data表转化为csv文件的方法,于是我发现:

来自:http://cn.voidcc.com/question/p-wygpwrof-boe.html
来自:https://ask.helplib.com/csv/post_12540297

来自:https://codeday.me/bug/20181226/467736.html

这是我google “spark dateframe存为csv” 的前三条答案
发现问题了吗?
***csv()方法里是否需要在末尾加入.csv***三条回答有两种不同的答案,想要探求问题本质的本君去查阅了一下源码:
源码地址:点击这里
发现csv()方法如下:

调用了save()方法,并且没有例子,于是不放弃的我又找到了save()方法源码:
还是一无所获,于是乎我要自己找个例子测试一下:
部分代码如下

val spark = SparkSession.builder().appName("demo").getOrCreate()import spark.implicits._var data = Seq(("10", "ming", "hlj","2019-09-06 10:15:15", "1"),("9", "tian", "jl","2019-09-07 14:15:15", "1"),("8", "ming", "jl","2019-09-07 16:15:15", "1"),("7", "sun", "ln","2019-09-07 16:15:15", "1"),("10000", "ke", null,"2019-09-07 21:01:01", null),("4", "ke", "hlj","2019-09-07 20:15:15", null),(null, "ke", "hlj","2019-09-07 10:15:15", "1"),(null, "ke", "hlj","2019-09-08 01:15:15", "1"),("6", "ming", "ln","2019-09-08 05:15:15", "1"),("5", "tian", "jl","2019-09-08 13:15:15", "1"),("4", "tian", "hlj","2019-09-08 19:15:15", "1"),("2", "sun", "tj","2019-09-08 15:15:15", "1")).toDF("CST_NO", "name", "live","START_TIME", "freq")data.show()data.coalesce(1).write.mode(SaveMode.Overwrite).option("header","true").option("sep","#").csv("rerr")data.coalesce(1).write.mode(SaveMode.Overwrite).option("header","true").option("sep","#").csv("ressssssss")println("存入完成!!!!!!!!!!")spark.close()

当我运行完代码才发现,我存入的路径不是我的本地路径,而是hdfs路径,但是也没关系:

hdfs dfs -ls

查看hdfs目录发现:
果然出现两条,到底是文件还是文件夹呢?

hdfs dfs -ls ressssssss.csv


得出结论 :ressssssss.csv是一个文件夹,文件夹下有两个文件,其中一个是csv文件,所以 csv()方法结尾不需要加.csv

注:

  • 1.想让csv文件存入服务器物理机上,需要先进入hdfs找到该文件,再复制到物理机上:

如:

hdfs dfs -get rerr/part-00000-26efe559-5bca-454a-9250-d7759e953a53-c000.csv /home/xas/lq

rerr/part-00000-26efe559-5bca-454a-9250-d7759e953a53-c000.csv 是hdfs文件的路径
/home/xas/lq 是物理机路径下文件夹

  • 2.hdfs指令 参考链接
    从服务器物理机查看文件命令为:

hdfs dfs -ls

查看文件内容命令为:

hadf dfs -cat rerr/part-00000-b29df28f-2a85-47bf-8559-f8cf6cc25a2b-c000.csv

  • 3.spark想直接从服务器中读取csv

输入路径最好是hdfs路径而不是物理机路径 亲测有可能不会被识别,暂时没有找到解决办法,还是先从物理机复制到hdfs中再引用hdfs地址,更加高效靠谱… 希望大家注意(本人被物理路径折腾了2个小时,最后还是转到hdfs中解决了,心塞。。。。)

经过楓尘君的一顿瞎折腾,相信小伙伴们不会对于csv()方法的疑惑啦啦啦~~~

Spark将dataframe存为csv文件相关推荐

  1. Python将list存为csv文件

    #!/usr/bin/env python # -*- encoding: utf-8 -*-import sys import json import os import pandas as pd& ...

  2. python:dataframe保存成csv文件和读取

    一.从csv文件读取数据为dataframe 函数原型: pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='i ...

  3. Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵)

    Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵) 本博客转载自:https://blog.csdn.net/vernice/article/details/50 ...

  4. 博图V15 DB块 变量表直接存为CSV文件导入MCGS

    一.前言 博图V15将DB块/变量表数据存为CSV文件导入MCGS,简化西门子PLC与第三方触摸屏交互数据的繁琐过程,在降低电气成本上简化工程师重复劳动的工作内容 二.操作步骤 (1)打开MCGS组态 ...

  5. python存成csv文件时中文乱码_Python在向CSV文件写中文时乱码的处理办法

    前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的. 对 ...

  6. Spark 读取CSV文件为RDD

    Spark 读取CSV文件为RDD 1 准备数据 在开始之前,假设我们在文件夹"c:/tmp/files"中有以下带有逗号分隔文件内容的 CSV 文件名,我使用这些文件来演示示例. ...

  7. 【Python】大数据存储技巧,快出csv文件10000倍!

    作者:杰少 大数据存储格式对比 简 介 在之前文章中,我们对比了在遇到大数据时,不同数据处理工具包的优劣, 是否拥有丰富的数据处理函数: 是否读取数据够快: 是否需要额外设备(例如GPU)的支持等等. ...

  8. [转载] pythonpandas读取csv文件最后一行_简单小案例(一):使用Pandas在Python中读取和写入CSV文件...

    参考链接: 使用Pandas在Python中读写CSV文件 前期文章链接: YOLOv3论文 https://arxiv.org/pdf/1804.02767.pdf 正文: 有许多方法可以在Pyth ...

  9. 利用pandas实现json文件转化成csv文件

    补充上篇博客提到的json文件数据转换成csv文件.作为数据分析最常用文件类型json与csv,出于一定情况下,我们需要将json中字典类型的数据,转换为csv存储,这又用到python强大的pand ...

最新文章

  1. CVPR2021 论文大盘点:全景分割论文汇总(共15篇)
  2. php composer 缓慢,php – 下载Laravel时,Composer非常慢
  3. [Luogu 1351] NOIP2014 联合权值
  4. Java关于md5+salt盐加密验证
  5. Problem 1108 - 淼·诺贝尔
  6. php在IIS上put,delete请求报404
  7. 用python开发的运维管理系统_Python运维三十六式:用Python写一个简单的监控系统...
  8. ELK 学习笔记之 elasticsearch Bulk操作
  9. 友华改设备标识命令_PT632 G_2装备指令
  10. 数学建模算法python源码_热传导方程之显示差分算法(python源码)
  11. HTML + CSS + JavaScript 两小时快速入门教程
  12. 【从蛋壳到满天飞】JS 数据结构解析和算法实现-链表
  13. html+抽奖游戏,九宫格抽奖HTML+JS版
  14. 【IO专栏】Java OIO NIO通信对比分析【002】
  15. html 注销 按钮,用户登录/注销时隐藏/替换菜单项
  16. Android NFC读MifareClassic卡获取卡片ID 类型 扇区 存储空间
  17. 汽车防滑控制不同控制策略车辆abs 门阈值 模糊pid
  18. canvas画简单的横向流程图
  19. python分割_Python文件合并与分割操作方法工具
  20. EBGP环回口邻居建立不了的原因

热门文章

  1. 双目立体匹配_SGM算法
  2. 关于使用Word下划线不对齐的问题
  3. 家用吸油烟机哪种好?应该怎么选择?
  4. SAP Organizational Structure Overview(组织架构)
  5. react顶部导航栏固定顶部
  6. 浙江省计算机考试证书领取时间,浙江2020年软考证书领取通知
  7. 免费领取JetBrains旗下webstorm/intellij IDEA一年正版使用权
  8. 微信大更新,电脑也可以刷朋友圈了!
  9. 我对国创、挑战杯的一些看法
  10. 解题思考G. 老鼠和猫的交易