pySpark读写CSV文件、查重并写入CSV文件中
来源:互联网 发布:韩国语打字软件 编辑:程序博客网 时间:2024/06/05 11:30
前段时间在研究 pySpark 数据处理,深刻地感受到spark的极大魅力。自己是一个初学者,这篇博客也只是简单的完成了几个简单的工作任务,哈哈@@不说了上代码:
from pyspark import SparkConf,SparkContextimport csvfrom _operator import addimport re#!/usr/bin/python# -*- coding: UTF-8 -*-conf = SparkConf().setAppName("Simple").setMaster("local")sc = SparkContext(conf = conf)file1 = open("D:\\lbossdata.CSV","r")f1 = csv.reader(file1) //打开csv文件将文件的第一行的第一列读入到row1row1 = [row[0] for row in f1] file1.close()with open("D:\\lbossdata.CSV","r") as file2: f2 = csv.reader(file2) row2 = [row[1] for row in f2] with open("D:\\lbossdata.CSV","r") as file3: f3 = csv.reader(file3) row3 = [row[2] for row in f3]
通第一个方法一样,将其余几行也分别读入到row2\row3,row4,row5,row6。
最先应将读出来的每一个row放入数据集中,将每一个RDD联结为一个RDD。
然后开始去重,调用distinct()方法,代码如下:
RDD1 = sc.parallelize(row1, 1)
RDD2 = sc.parallelize(row2, 1)
RDD3 = sc.parallelize(row3, 1)
RDD4 = sc.parallelize(row4, 1)
RDD5 = sc.parallelize(row5, 1)
RDD6 = sc.parallelize(row6, 1)
RDD = RDD1.zip(RDD2).zip(RDD3).zip(RDD4).zip(RDD5).zip(RDD6)
print(RDD.count())
RDD_1= RDD.distinct()
print(RDD_1.count())
RDD1_1 = RDD_1.map(lambda x:(x[0][0][0][0][0],x[0][0][0][0][1],x[0][0][0][1],x[0][0][1],x[0][1],x[1]))
最后一行是将每一个RDD中的数据使用逗号分隔开,以便存储到csv文件中去。
最后在本地创建一个csv文件,将上边的RDD1_1写入csv文件即可。
with open("D:\\z.CSV","w",newline="") as file_1:
f_csv = csv.writer(file_1)
f_csv.writerows(RDD1_1.collect())
这就是所有的代码,速度相当快。大概用时不到1秒。@@
第一次写博客,感觉还行,不知道代码怎么贴入,总是乱贴,还请大家包涵。
- pySpark读写CSV文件、查重并写入CSV文件中
- commons-csv读写CSV文件
- 创建一个csv文件,并写入数据
- java将float数据写入csv 并在python中读取csv文件
- python csv文件写入
- java写入csv文件
- CSV 文件上传写入
- pandas写入csv文件
- python 写入csv文件
- Python 写入CSV文件
- ofstream写入csv文件
- Python csv文件写入
- 读写csv 文件
- Java读写CSV文件
- csv文件读写操作
- Java读写CSV文件
- csv文件读写
- Python读写csv文件
- 欢迎使用CSDN-markdown编辑器
- Submit提交表单后无法跳转页面
- iOS 多线程+死锁(同步函数底层)
- src与href属性的区别
- xml转义
- pySpark读写CSV文件、查重并写入CSV文件中
- Java中获取指定日为星期几及其他日期操作
- Bagging和随机森林
- 判断回文字符序列-栈的使用
- 排序算法的稳定性
- Javaweb核心之response
- 目标文件--简介
- iOS开发——我的知识点记录
- vi 多文件间数据拷贝