【问题标题】:cannot send pyspark output to a file in the local file system无法将 pyspark 输出发送到本地文件系统中的文件
【发布时间】:2016-02-19 19:28:05
【问题描述】:

我正在 spark(单节点,独立)上运行 pyspark 作业,并尝试将输出保存在本地文件系统的文本文件中。

input = sc.textFile(inputfilepath)
words = input.flatMap(lambda x: x.split())
wordCount = words.countByValue()

wordCount.saveAsTextFile("file:///home/username/output.txt")

我收到一个错误提示

AttributeError: 'collections.defaultdict' object has no attribute 'saveAsTextFile'

基本上,无论我添加到“wordCount”对象中的什么,例如 collect() 或 map(),它都会返回相同的错误。当输出到终端时(使用 for 循环),代码可以正常工作,但我不知道将输出发送到文件时缺少什么。

【问题讨论】:

    标签: python apache-spark pyspark


    【解决方案1】:

    您调用的countByValue() method 正在返回一个字数字典。这只是一个标准的 Python 字典,没有任何可用的 Spark 方法。

    您可以使用your favorite method将字典保存在本地。

    【讨论】:

    • 打败我。 @Snoozer 是 100% 正确的。 countByValue 不会创建一个新的 RDD,它是一个本地字典。
    • 谢谢...我将其更改为 map(lambda x: (str(x),1)).reduceByKey(add)from operator import add
    猜你喜欢
    • 2023-03-23
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多