我正在尝试创建一个databricks笔记本,以从Azure Data Lake读取xml文件并将其转换为镶木地板。我从这里获得了spark-xml库-[ https://github.com/databricks/spark-xml]。我遵循了github中提供的示例,但无法使其正常工作。
df = (spark.read.format("xml")
.option("rootTag","catalog") \
.option("rowTag", "book") \
.load("adl://mysandbox.azuredatalakestore.net/Source/catalog.xml"))
Exception Details:
java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class
StackTrace:
/databricks/spark/python/pyspark/sql/readwriter.py in load(self, path,
format, schema, **options)
164 self.options(**options)
165 if isinstance(path, basestring):
--> 166 return self._df(self._jreader.load(path))
167 elif path is not None:
168 if type(path) != list:
/databricks/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py in
__call__(self, *args)
1255 answer = self.gateway_client.send_command(command)
1256 return_value = get_return_value(
-> 1257 answer, self.gateway_client, self.target_id,
self.name)
1258
我还需要定义其他依赖项来解析xml吗?感谢帮助。
ew,终于解决了问题。错误消息没有提供任何异常详细信息,但问题在于spark-xml库与集群的scala版本之间的版本差异。我更新了该库以使其与集群版本匹配,问题得以解决。希望它可以帮助遇到同样问题的人。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句