python - 无法使用 pyspark 从 xml 加载数据
问题描述
在 jupyter 中使用以下命令下载数据。
!7z x stackoverflow.com-Posts.7z -oposts
# load xml file into spark data frame.
posts = spark.read.format("xml").option("rowTag", "row").load("./posts/Posts.xml")
得到以下错误:
Py4JJavaError: An error occurred while calling o532.load.
: java.lang.ClassNotFoundException: Failed to find data source: xml. Please find packages at http://spark.apache.org/third-party-projects.html
at org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSource.scala:657)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:194)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:178)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
解决方案
您需要将 jar 传递给 sparkContext
jar 路径:https ://repo1.maven.org/maven2/com/databricks/spark-xml_2.11/0.9.0/spark-xml_2.11-0.9.0.jar
pyspark --jars /home/Downloads/spark_jars/spark-xml_2.11-0.9.0.jar
df = spark.read.format("com.databricks.spark.xml").option("rowTag", "row").load("./posts/Posts.xml")
推荐阅读
- woocommerce - 导入和使用 WooCommerce API 后出现空白屏幕
- symfony - 如何在 symfony 中为奏鸣曲块服务添加中继器(克隆)字段
- mysql - MySQL GROUP BY 使用 where 子句查找重复项
- javascript - 如何使用 foreach 循环进行 json_decode?
- laravel - 如何将数据传递给vue
- react-native - 如何检查应用程序后台时间反应原生?
- php - 以特定格式从 php 输出 json
- c - Windows API:在毫秒之间获取微秒
- django - Django 视图集。perform_create fun中如何从路径中获取id参数
- makefile - Makefiles:什么是仅订单的先决条件?