python - lxml.etree iterparse 不接受 HDFS 文件路径
问题描述
我想使用 package.json 中的iterparse
函数处理分布在 HDFS 文件系统中的巨大 xml 文件lxml.etree
。
我已经在本地和亚马逊的 EMR 集群上尝试过:
- 本地:我的 xml 文件的地址是
hdfs://localhost:9000/user/hadoop/history.xml
- EMR 集群:地址是
/user/hadoop/history.xml
在这两种情况下,运行我的简单 python 程序都会崩溃并出现以下错误
Traceback (most recent call last):
File "xml_parser.py", line 18, in <module>
main()
File "xml_parser.py", line 12, in main
for event, elem in ET.iterparse(inputFile, tag='page'):
File "src/lxml/iterparse.pxi", line 78, in lxml.etree.iterparse.__init__
FileNotFoundError: [Errno 2] No such file or directory: <file_path>
这是我的python程序
import sys
import lxml.etree as ET
from pyspark import SparkContext
from pyspark.sql import SparkSession
def main():
sc = SparkContext()
spark = SparkSession(sc)
inputFile = sys.argv[1]
for event, elem in ET.iterparse(inputFile, tag='page'):
elem.clear()
print('finished')
if __name__ == "__main__":
main()
解决方案
推荐阅读
- java - 在 Java 中使用 ASM 测试跳转
- css - 滑动移动导航溢出
- docker - 为什么 Neo4J docker 身份验证不起作用
- raku - 使用冒号语法的错误方法调用。没有错误。但是这是什么意思?
- css - 固定高度元素强制其他元素在 Firefox 上的高度为零
- amazon-dynamodb - 如何在 DynamoDB 中建模一对一、一对多和多对多关系
- java - 无法读取下一个控制台行 - NoSuchElementException
- javascript - 页面加载 jQuery 表单提交不起作用
- python - 使用 biopython 从 NCBI 获取基因组
- ios - 根据用户显示扩展