我正在尝试使用 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中存在的文件,但它正在抛出该错误。
答案 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)