使用databrics spark API推断xml处理的模式选项

时间:2017-12-22 09:38:36

标签: xml apache-spark-sql spark-dataframe databricks

我必须处理一个字符串值为“0001546”的xml。如果我使用databrics xml API将它们加载到数据帧中,它将实际字符串值转换为double类型,并且有问题double将我的完整值从“0001546”更改为1546.这是因为字符串的隐式类型转换为数字但是我不希望这样做。期望实际价值应该按原样处理。 一种选择是指定xml的手动模式,这在我的情况下是不可行的。 我发现一个错误报告给数据库以禁用像csv文件那样的推断模式。 我们有解决方法/解决方案吗?感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我找到了一个战术解决方案,直到它在新版本中得到修复。 我创建了一个占位符xml文件,该文件放在输入文件夹中,该文件夹包含我要处理的所有xml文件。 占位符xml文件中的id字段具有<Id>x0001546</Id>之类的值,请注意一个额外的&#39; x&#39;字符已被添加到虚拟记录中。 由于默认采样推断模式的值为1(不需要为每个记录执行此操作),因此识别出该字段的spark应被视为字母数字。后来我从dataframe过滤掉了占位符xml记录。