[英]how to convert or save a csv file into a txt file using pyspark
我正在学习 Pyspark,我不知道如何将 RDD 值的总和保存到文件中。 我试过下面的代码失败了:
from typing import KeysView
counts = rdd.flatMap(lambda line: line.split(",")) \
.map(lambda word: (word, 1)) \
.reduceByKey(lambda a, b: a + b)
k=counts.keys().saveAsTextFile("out/out_1_2a.txt")
sc.parallelize(counts.values().sum()).saveAsTextFile('out/out_1_3.txt')
虽然我可以将键保存到一个文件中,但我无法保存值的总和。 我得到的错误是:“TypeError: 'int' object is not iterable”
有人可以帮忙:
见下面的逻辑 -
counts = rdd.flatMap(lambda line: line.split(",")) \
.map(lambda word: (word, 1)) \
.reduceByKey(lambda a, b: a + b)
cnt_sum = counts.values().sum()
sc.parallelize([cnt_sum]).coalesce(1).saveAsTextFile("<path>/filename.txt")
更有效(更少的代码):
count = len(rdd.flatMap(lambda x: x.split(",")).collect())
sc.parallelize([count]).coalesce(1).saveAsTextFile("<path>/filename.txt")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.