【发布时间】:2020-02-17 10:35:51
【问题描述】:
我有一个 XLS/CSV 文件,我正在将其读入 pandas 数据框。我想从此数据框中生成一个 avro 模式。
我是 python 和 pandas 的新手。请帮忙。
data_frame = pd.read_excel(INPUT_PATH)
我想从这个数据帧动态生成一个 avro 模式。请帮忙
【问题讨论】:
标签: python pandas dataframe schema avro
我有一个 XLS/CSV 文件,我正在将其读入 pandas 数据框。我想从此数据框中生成一个 avro 模式。
我是 python 和 pandas 的新手。请帮忙。
data_frame = pd.read_excel(INPUT_PATH)
我想从这个数据帧动态生成一个 avro 模式。请帮忙
【问题讨论】:
标签: python pandas dataframe schema avro
我找到了解决方案。我在 pandas 数据框中提取了字段的数据类型并将其保存在字段名称中。
将数据类型映射到与 avro 兼容的数据类型(pandas 中的“object” -> avro 中的“string”)
创建了一个 avro 模式的模板,并将替换的字段名称和数据类型放入 'fields :[]' 部分并将其发布到注册表。
例如:
schema = {"type": "record",
"name": schemaName,
"fields": [
{"name": key, "type": value} for (key, value) in myDict.items()
]
}
然后可以使用 Fastavro 库来解析此架构
【讨论】: