我要求能够追溯血统并返回单个镶木地板文件,并能够执行批量加载,例如,如果要在数据流中发现缺陷,则要重放几年的镶木地板文件。

经过多次尝试,以下内容适用于大容量加载,其中options.input是RuntimeValueProvider,而SplitFn仅yields str.split()

with beam.Pipeline(options=PipelineOptions(), argv=args) as p:
    mainPipe = p \
        | 'CSV of URIs' >> beam.Create([options.input]) \
        | 'Split URIs into records' >> beam.ParDo(SplitFn(',')) \
        | "Read Parquet" >> beam.io.parquetio.ReadAllFromParquet(columns=[k for k in fields.keys()]) 

不幸的是, beam.io.parquetio.ReadAllFromParquet不会说每条记录来自哪个文件,也不会说parquetio唯一的其他功能ReadFromParquet

除了离开Goog​​le Cloud Dataflow或教会Java团队之外,我该如何立即将多个实木复合地板文件加载到BigQuery中,并知道每条记录来自哪个文件?

#1楼 票数:0 已采纳

给定当前的API,我看不到为此的预制解决方案。 尽管您可以通过以下任一方法解决问题:

  • 扩展/修改ReadAllFromParquet以将文件名附加到输出。
  • 使用BQ工具从镶木地板导入。 我不确定他们是否有完全相同的方案。

  ask by Steven Ensslen translate from so

未解决问题?本站智能推荐:

2回复

使用ApacheBeamPythonSDK将文件写入Parquet中的动态目的地

我正在尝试通过WriteToFiles类使用动态目标编写 Parquet 文件。 我什至发现了一些像这样进一步开发的示例,他们在其中构建了一个自定义的 Avro 文件接收器。 我目前正在尝试使用pyarrow库来编写一个 Parquet 接收器,它可以以分布式方式管理写操作,类似于 WriteToP
2回复

读取GCSblob,其中文件名来自apache光束中以前的p-collection

我正在尝试读取GCS 镶木地板 blob ,其中文件名来自 apache 光束中的前一个 p-collection 。 代码示例如下。 我想使用流式数据流作业,我希望通过pubsub 主题获得不同的文件名。 最后,在阅读了镶木地板后,我想将其纳入bigquery
1回复

Beam/Dataflow读取Parquet文件并为每条记录添加文件名/路径

我正在使用 Apache Beam Python SDK,我正在尝试使用apache_beam.io.parquetio从 Parquet 文件读取数据,但我也想将文件名(或路径)添加到数据中,因为它也包含数据。 我在这里查看了建议的模式并阅读了 Parquetio 类似于 fileio 但它似乎没
1回复

GoogleDataFlow和阅读Parquet文件

尝试使用Google DataFlow Java SDK,但对于我的用例,我的输入文件是.parquet文件。 无法找到任何开箱即用的功能,可以将镶木地板作为有界数据源读取到DataFlow管道中。 据我所知,我可以创建一个编码器和/或下沉像基于Parquet阅读器的 AvroIO。
1回复

用于读取CloudDataflow中的Parquet文件的自定义源

我需要读取用Java编写的数据流中的实木复合地板文件,并在bigquery上上传。 由于还没有开箱即用的功能,我知道我必须使用hadoopFileFormat编写自定义源,但是我找不到任何与此相关的文档。 有人可以为我提供一些代码或文档,以帮助我如何编写自定义源或任何其他可用于读取Cloud
1回复

ApacheBeam可以检测Spark和Pandas等Parquet文件的架构(列名)吗?

我是 Apache Beam 的新手,我来自 API 非常丰富的 Spark 世界。 如何使用 Apache Beam 获取 Parquet 文件的架构? 没有它,我将数据加载到内存中,因为有时它会冒很大的风险,而且我只对了解列和可选的列类型感兴趣。 语言是 Python。 存储系统为 Google
2回复

使用ParquetIO通过ApacheBeam读取和编写镶木地板文件的示例

有没有人尝试使用Apache Beam读/写Parquet文件。 最近在版本2.5.0中添加了支持,因此没有太多文档。 我正在尝试阅读json输入文件,并希望写入镶木地板格式。 提前致谢。
1回复

使用GoogleDataflow转换的AvrovsParquet在Google云端存储中

使用Google Dataflow服务将来自Kafka的相同10k json记录批量加载到Google云存储中。 以下是分别使用Apache Beam的AvroIO,ParquetIO,TextIO库生成的文件的分解。 我们假设,与GCP的avro相比,数据足迹大小的镶木地板文件大小将更小