簡體   English   中英

如何使用 pyspark 將 csv 文件轉換或保存為 txt 文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM