使用 databricks spark API 推断 xml 处理的模式选项
Infer schema option for xml processing using databrics spark API
我必须处理一个 xml,它的字符串值类似于“0001546”。如果我使用 databrics xml API 将它们加载到数据帧中,它会将实际字符串值转换为双精度类型,并且双精度会将我的完整值从“0001546”更改为 1546。这是因为隐式将字符串类型转换为数字,但我不希望它表现得像那样。期望实际值应按原样处理。
一种选择是为 xml 指定手动模式,这在我的情况下不可行。
我发现了一个报告给 databrics 的错误,以禁用像 csv 文件这样的推断模式。
我们有什么 workaround/solution 可以解决这个问题吗?感谢您的帮助。
我找到了一个战术解决方案,直到它在新版本中得到修复。
我创建了一个占位符 xml 文件,该文件被放入输入文件夹中,其中包含我要处理的所有 xml 文件。
占位符 xml 文件中的 id 字段的值类似于 <Id>x0001546</Id>
请注意,一个额外的 'x' 字符已添加到虚拟记录中。
因为,默认情况下采样推断模式的值为 1(不需要为每条记录都这样做),spark 认为该字段应被视为字母数字。后来我从数据框中过滤掉了占位符 xml 记录。
我必须处理一个 xml,它的字符串值类似于“0001546”。如果我使用 databrics xml API 将它们加载到数据帧中,它会将实际字符串值转换为双精度类型,并且双精度会将我的完整值从“0001546”更改为 1546。这是因为隐式将字符串类型转换为数字,但我不希望它表现得像那样。期望实际值应按原样处理。 一种选择是为 xml 指定手动模式,这在我的情况下不可行。 我发现了一个报告给 databrics 的错误,以禁用像 csv 文件这样的推断模式。 我们有什么 workaround/solution 可以解决这个问题吗?感谢您的帮助。
我找到了一个战术解决方案,直到它在新版本中得到修复。
我创建了一个占位符 xml 文件,该文件被放入输入文件夹中,其中包含我要处理的所有 xml 文件。
占位符 xml 文件中的 id 字段的值类似于 <Id>x0001546</Id>
请注意,一个额外的 'x' 字符已添加到虚拟记录中。
因为,默认情况下采样推断模式的值为 1(不需要为每条记录都这样做),spark 认为该字段应被视为字母数字。后来我从数据框中过滤掉了占位符 xml 记录。