亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Apache Beam 中讀取整個文件

在 Apache Beam 中讀取整個文件

繁花不似錦 2022-06-28 15:25:32
是否可以在 Apache Beam 中讀取整個文件(不是逐行)?例如,我想讀取多行 JSON,我的想法是逐個文件讀取,從每個文件中提取數據并從列表中創建 PCollection。將源 JSON 預處理為一個 JSON 文件,其中每一行都是單獨的 JSON,這是個好主意還是更好?謝謝你的提前。
查看完整描述

2 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

TextIO逐行讀取文件。因此,在您的 test.json 中,每一行都需要包含一個單獨的 Json 對象。

光束或任何分布式處理引擎的想法是能夠并行化輸入數據。從您的問題來看,似乎需要進行一些預處理才能將它們拆分為多個 json。請注意,它不必位于單個文件中,您可以擁有多個文件,每個文件都包含任意數量的 json 文件。Beam 將并行讀取行。

如果有幫助,請接受答案。


查看完整回答
反對 回復 2022-06-28
?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

希望對從文件讀取的對象進行并行化是一個合理的用例。


import apache_beam as beam

from apache_beam.io import fileio

import json


# Make some fake data

for i in range(0,10):

    with open(f'/tmp/data{i}.json', 'w') as f:

        json.dump({'somethinig':i,'otherthing':[1,2,3]}, f)


filenames = [f'/tmp/data{i}.json' for i in range(0,10)]

with beam.Pipeline() as pipeline:

  lines = (

      pipeline

      | beam.Create(filenames)

      | fileio.MatchAll()

      | fileio.ReadMatches()

      | beam.Map(lambda file: print(file.read_utf8()))

      )


查看完整回答
反對 回復 2022-06-28
  • 2 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號