【问题标题】:Not Able to read Xml data using pyspark to a dataframe无法使用 pyspark 将 Xml 数据读取到数据帧
【发布时间】:2019-04-08 06:33:26
【问题描述】:

我有一个 xml 文件,我必须通过该文件将数据读入 pyspark。我正在使用 spark-xml api 读取它,但它不起作用。 The link is here for git repository.

我使用了python api,但它没有显示结果并引发异常。

java.lang.ClassNotFoundException: Failed to find data source: com.databricks.spark.xml.
Please find packages at http://spark.apache.org/third-party-projects.html
df = spark.read \
.format('com.databricks.spark.xml') \
.options(rowTag='Receipt') \
.load('***.XML', schema = customSchema)

当我转到它建议的链接时,它没有显示任何 xml。

最后,我想读取 xml 文件,然后将其存储到 pyspark 数据帧中。

【问题讨论】:

  • 试试:df = spark.read.format('xml').options(rowTag='Receipt').load('***.XML', schema = customSchema)
  • 是的,我之前也试过了,但是不行。

标签: python xml python-3.x pyspark apache-spark-sql


【解决方案1】:

问题似乎 spark-xml jar 不可用

1) 尝试通过使用 jar 文件位置设置额外的类路径来创建 Spark 会话

jar_path = "<path_of_jar>/com.databricks_spark-xml_2.10-0.4.1.jar"
spark = SparkSession.builder.appName("Spark - XML read").master("local[*]") \
    .config("spark.jars", jar_path) \
    .config("spark.executor.extraClassPath", jar_path) \
    .config("spark.executor.extraLibrary", jar_path) \
    .config("spark.driver.extraClassPath", jar_path) \
    .getOrCreate()

2) 通过提供 spark xml 包启动 pyspark shell

pyspark --packages com.databricks:spark-xml_2.10:0.4.1

【讨论】:

    猜你喜欢
    • 2019-10-31
    • 2018-06-21
    • 2020-03-18
    • 1970-01-01
    • 2022-01-03
    • 2020-02-01
    • 2021-03-01
    • 1970-01-01
    • 2023-01-30
    相关资源
    最近更新 更多