json文件架构/对象以触发架构以加载数据框

时间:2018-07-13 16:37:07

标签: python json dataframe hive pyspark

我必须使用pySpark将大量文件加载到配置单元表中。有多个包含数据的json文件和定义了文件数据模式的单独文件。当不通过模式加载文件时,数据列会混乱,这就是为什么我想创建模式的原因。 Json文件如下所示:

data: {'col1': 'ASDFG', 'col2': 'ASDXC'...

schema: {'description': 'filename', 'type': 'object', 'properties': {'col1': {'type': 'string'}, 'col2': {'type': 'string}, 'col3': {'type': 'string} ...

我的想法是将此文件作为字典读取,提取“属性”键值作为列名和数据类型,然后SOMEHOW生成用于将Spark数据帧加载到配置单元的架构。还有其他选择吗?如果您遇到这种情况,我将非常感谢您的帮助或提供一些示例。

谢谢。

1 个答案:

答案 0 :(得分:0)

您说它们不正常,但这是因为python字典没有顺序(最新版本除外)。

您可以改用OrderedDict,它们将保持原始顺序:

from collections import OrderedDict
data = json.loads(my_json, object_pairs_hook=OrderedDict)