python - 'unicode'对象没有属性 'saveAsTextFile'

标签 python hadoop apache-spark pyspark rdd

我尝试使用 pyspark HDFS 提取文件后尝试修改我的文件,然后我想将其保存在HDFS中,因为我已经编写了以下代码。

代码:

import subprocess
from subprocess import Popen, PIPE
from pyspark import SparkContext
cat = sc.textFile("/user/root/parsed.txt")
hrk = "@"
for line in cat.collect():
   if (code == "ID"):
      line =line.strip() + "|"+hrk   
      line.saveAsTextFile("/user/root/testsprk")
      print(line) 

但是,当我运行代码时,我得到了以下错误。

错误:
Traceback (most recent call last):                                              
  File "<stdin>", line 30, in <module>
AttributeError: 'unicode' object has no attribute 'saveAsTextFile'

我知道变量存在一些问题,但我无法修复它。

最佳答案

这是因为您正在收集所有数据,这意味着收集的不是RDD,而普通的列表和行只是一个字符串。

您不应该收集驱动程序上的所有数据。相反,请先使用RDD.map,然后再使用RDD.saveAsTextFile

def add_hrk_on_id(line):
    if (code == "ID"):
        return line.strip() + "|"+hrk   
    else
        return line

cat.map(add_hrk_on_id).saveAsTextFile(path)

关于python - 'unicode'对象没有属性 'saveAsTextFile',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43999108/

相关文章:

python - python版本在Docker构建期间导致问题

python - 遍历 xarray 数据集中的 dataArray 属性

apache-spark - Spark Dataframe 丢失分区

python - 将 Pandas 数据帧转换为 Spark 数据帧错误

python - Spark ML Pipeline 导致 java.lang.Exception : failed to compile . .. 代码 ... 超出 64 KB

python - 使用 selenium webdriver 在 firefox 中打开 www.google.com 而不是 www.google.co.in

scala - 无法从 JAR 文件加载主类

hadoop - 配置单元:无法获取GROUP BY中不存在的列

hadoop - Spark SQL 不返回 HDP 上 HIVE 事务表的记录

python - 如何使用FastAPI将视频帧和文本返回到HTML页面?