使用 databrics spark API 推断 xml 处理的模式选项
Posted
技术标签:
【中文标题】使用 databrics spark API 推断 xml 处理的模式选项【英文标题】:Infer schema option for xml processing using databrics spark API 【发布时间】:2017-12-22 09:38:35 【问题描述】:我必须处理一个具有“0001546”之类的字符串值的xml。如果我使用databrics xml API将它们加载到数据帧中,它会将实际字符串值转换为双精度类型,并且存在双精度问题将我的完整值从“0001546”更改为1546。这是因为字符串隐式类型转换为数字,但我不希望它表现得那样。预期实际值应按原样处理。 一种选择是为 xml 指定手动模式,这在我的情况下是不可行的。 我发现了一个向 databrics 报告的错误,以禁用像 csv 文件这样的推断模式。 我们有任何解决方法/解决方案来解决这个问题吗?感谢您的帮助。
【问题讨论】:
【参考方案1】:我找到了一个战术解决方案,直到它在新版本中得到修复。
我创建了一个占位符 xml 文件,该文件放置在输入文件夹中,该文件夹包含我要处理的所有 xml 文件。
占位符 xml 文件中的 id 字段的值类似于 <Id>x0001546</Id>
请注意,在虚拟记录中添加了一个额外的“x”字符。
因为,采样推断模式的默认值是 1(不需要对每条记录都这样做),spark 认为这个字段应该被视为字母数字。后来我从数据框中过滤掉了占位符 xml 记录。
【讨论】:
您好,您有没有找到更好的解决方案?以上是关于使用 databrics spark API 推断 xml 处理的模式选项的主要内容,如果未能解决你的问题,请参考以下文章
如何知道 Spark 使用 Scala 推断出的 RDD 类型是啥
使用 spark.read.format("com.crealytics.spark.excel") 的 inferSchema 推断日期类型列的双精度