Pyspark:hdfs中没有这样的文件或目录

时间:2017-08-30 08:26:47

标签: xml hadoop pyspark elementtree

我正在尝试使用 pyspark 解析xml文件。我的文件存在于 HDFS 中。我在下面写了我的代码但是当我执行它时,它无法识别位置。请帮忙 - 下面是我的代码

代码:

import xml.etree.ElementTree as ET
filenme = sc.wholeTextFiles("/user/root/CDs")
def add_hrk(file):
   tree = ET.parse(file)
   doc = tree.getroot()
filenme.map(lambda(filename, content): filename).foreach(add_hrk)

错误:

IOError: [Errno 2] No such file or directory: u'hdfs://xxxx/user/root/CDs/Parsed_CD.xml'

我想提一下,我正在使用 wholeTextFiles ,因为在函数 ET.parse 中,我必须提到我当前正在尝试处理的文件的路径。请建议,因为我没有找到任何解决方案。我已经检查了hdfs中存在的文件,但它正在抛出该错误。

1 个答案:

答案 0 :(得分:1)

ElementTree库期望文件在本地文件系统上可用。这就是为什么你要使用而不是fromstring,例如:

import xml.etree.ElementTree as ET
filenme = sc.wholeTextFiles("/user/root/CDs")
def add_hrk(content):
   tree = ET.fromstring(content)
   doc = tree.getroot()

filenme.map(lambda(filename, content): content).foreach(add_hrk)