首页 > 解决方案 > lxml.etree iterparse 不接受 HDFS 文件路径

问题描述

我想使用 package.json 中的iterparse函数处理分布在 HDFS 文件系统中的巨大 xml 文件lxml.etree

我已经在本地和亚马逊的 EMR 集群上尝试过:

在这两种情况下,运行我的简单 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()

标签: pythonpysparkhdfsamazon-emriterparse

解决方案


推荐阅读