Spark将dataframe存为csv文件
楓尘君一直觉得将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文件相关推荐
- Python将list存为csv文件
#!/usr/bin/env python # -*- encoding: utf-8 -*-import sys import json import os import pandas as pd& ...
- python:dataframe保存成csv文件和读取
一.从csv文件读取数据为dataframe 函数原型: pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='i ...
- Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵)
Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵) 本博客转载自:https://blog.csdn.net/vernice/article/details/50 ...
- 博图V15 DB块 变量表直接存为CSV文件导入MCGS
一.前言 博图V15将DB块/变量表数据存为CSV文件导入MCGS,简化西门子PLC与第三方触摸屏交互数据的繁琐过程,在降低电气成本上简化工程师重复劳动的工作内容 二.操作步骤 (1)打开MCGS组态 ...
- python存成csv文件时中文乱码_Python在向CSV文件写中文时乱码的处理办法
前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的. 对 ...
- Spark 读取CSV文件为RDD
Spark 读取CSV文件为RDD 1 准备数据 在开始之前,假设我们在文件夹"c:/tmp/files"中有以下带有逗号分隔文件内容的 CSV 文件名,我使用这些文件来演示示例. ...
- 【Python】大数据存储技巧,快出csv文件10000倍!
作者:杰少 大数据存储格式对比 简 介 在之前文章中,我们对比了在遇到大数据时,不同数据处理工具包的优劣, 是否拥有丰富的数据处理函数: 是否读取数据够快: 是否需要额外设备(例如GPU)的支持等等. ...
- [转载] pythonpandas读取csv文件最后一行_简单小案例(一):使用Pandas在Python中读取和写入CSV文件...
参考链接: 使用Pandas在Python中读写CSV文件 前期文章链接: YOLOv3论文 https://arxiv.org/pdf/1804.02767.pdf 正文: 有许多方法可以在Pyth ...
- 利用pandas实现json文件转化成csv文件
补充上篇博客提到的json文件数据转换成csv文件.作为数据分析最常用文件类型json与csv,出于一定情况下,我们需要将json中字典类型的数据,转换为csv存储,这又用到python强大的pand ...
最新文章
- CVPR2021 论文大盘点:全景分割论文汇总(共15篇)
- php composer 缓慢,php – 下载Laravel时,Composer非常慢
- [Luogu 1351] NOIP2014 联合权值
- Java关于md5+salt盐加密验证
- Problem 1108 - 淼·诺贝尔
- php在IIS上put,delete请求报404
- 用python开发的运维管理系统_Python运维三十六式:用Python写一个简单的监控系统...
- ELK 学习笔记之 elasticsearch Bulk操作
- 友华改设备标识命令_PT632 G_2装备指令
- 数学建模算法python源码_热传导方程之显示差分算法(python源码)
- HTML + CSS + JavaScript 两小时快速入门教程
- 【从蛋壳到满天飞】JS 数据结构解析和算法实现-链表
- html+抽奖游戏,九宫格抽奖HTML+JS版
- 【IO专栏】Java OIO NIO通信对比分析【002】
- html 注销 按钮,用户登录/注销时隐藏/替换菜单项
- Android NFC读MifareClassic卡获取卡片ID 类型 扇区 存储空间
- 汽车防滑控制不同控制策略车辆abs 门阈值 模糊pid
- canvas画简单的横向流程图
- python分割_Python文件合并与分割操作方法工具
- EBGP环回口邻居建立不了的原因