首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不知道报头字段名的情况下在Apache光束中将csv转换为dict

在不知道报头字段名的情况下在Apache光束中将csv转换为dict
EN

Stack Overflow用户
提问于 2021-03-18 18:53:58
回答 1查看 345关注 0票数 2

给定输入CSV (存储在本地或Google云存储中)为

代码语言:javascript
复制
a,b,c
1,2,3
4,5,6

如何获取具有值的PCollection

代码语言:javascript
复制
{a: 1, b: 2, c: 3}
{a: 4, b: 5, c: 6}

而事先不知道CSV报头的名称?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-19 08:27:13

这里有两个选项。

(1)您可以使用beam.io.ReadFromText跳过头部,然后使用beam.Map(lambda line: zip(header_names, line.split(','))。这将不会处理引用等(虽然可以调整为这样做,可能使用csv模块,尽管处理多行行将不适用于此方法)。

(2)你可以使用Beam dataframes API来做这件事,例如

代码语言:javascript
复制
from apache_beam.dataframe.io import read_csv

with beam.Pipeline as p:
    df = p | beam.dataframe.io.read_csv("/path/to/filepattern")
    # Here you can use df as if it were a Pandas dataframe,
    # or you can convert it into a PCollection of dicts with
    # pcoll = beam.dataframe.convert.to_pcollection(df)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66689622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档