GroupBy во время моих операций WriteToText не выполняется из-за нехватки памяти, которая убивает мое задание потока данных.При локальном выполнении задания у меня также не хватает памяти.
Исходя из исходного кода WriteToText , мне кажется, что указание количества шардов должно помочь в решении проблемы.Я не уверен, как выбрать количество шардов, хотя кто-нибудь может объяснить процесс выбора количества шардов?
Я ожидаю, что лучший подход шардинга может означать, что конвейер менее эффективен, но не дает сбоя.В общем, я не уверен, как сделать конвейеры потока данных более устойчивыми к сбоям от крупных выбросов.
Для более подробного контекста y сообщение об ошибке в потоке данных выглядело так:
Workflow failed. Causes: S31:ReadData/Read+BaseNLP+SplitBaseDoc+WriteJSONBaseNLPToGS/Write/WriteImpl/WriteBundles/WriteBundles+SplitSentences+NormalisedNESplitSentences+NamedEntitiesSplit+LinkedEntitiesSplit+ExtractMetadata+ExtractSentCoOcc+ExtractDocCoOcc+WriteJSONDocumentToGS/Write/WriteImpl/WriteBundles/WriteBundles+WriteDocCoOccToGS/Write/WriteImpl/WriteBundles/WriteBundles+WriteJSONDocumentToGS/Write/WriteImpl/Pair+WriteNamedEntitiesToGS/Write/WriteImpl/WriteBundles/WriteBundles+WriteNormalisedSentenceNEToGS/Write/WriteImpl/WriteBundles/WriteBundles+WriteNormalisedSentenceNEToGS/Write/WriteImpl/Pair+WriteNormalisedSentenceNEToGS/Write/WriteImpl/WindowInto(WindowIntoFn)+WriteNormalisedSentenceNEToGS/Write/WriteImpl/GroupByKey/Reify+WriteNormalisedSentenceNEToGS/Write/WriteImpl/GroupByKey/Write+WriteJSONDocToGS/Write/WriteImpl/WriteBundles/WriteBundles+WriteJSONDocToGS/Write/WriteImpl/Pair+WriteJSONDocToGS/Write/WriteImpl/WindowInto(WindowIntoFn)+WriteJSONDocToGS/Write/WriteImpl/GroupByKey/Reify+WriteJSONDocToGS/Write/WriteImpl/GroupByKey/Write+WriteDocCoOccToGS/Write/WriteImpl/Pair+WriteSentCoOccToGS/Write/WriteImpl/WriteBundles/WriteBundles+WriteSentCoOccToGS/Write/WriteImpl/Pair+WriteSentCoOccToGS/Write/WriteImpl/WindowInto(WindowIntoFn)+WriteSentCoOccToGS/Write/WriteImpl/GroupByKey/Reify+WriteSentCoOccToGS/Write/WriteImpl/GroupByKey/Write+WriteSentenceToGS/Write/WriteImpl/WriteBundles/WriteBundles+WriteSentenceToGS/Write/WriteImpl/Pair+WriteSentenceToGS/Write/WriteImpl/WindowInto(WindowIntoFn)+WriteSentenceToGS/Write/WriteImpl/GroupByKey/Reify+WriteSentenceToGS/Write/WriteImpl/GroupByKey/Write+WriteMetadataToGS/Write/WriteImpl/WriteBundles/WriteBundles+WriteMetadataToGS/Write/WriteImpl/Pair+WriteMetadataToGS/Write/WriteImpl/WindowInto(WindowIntoFn)+WriteMetadataToGS/Write/WriteImpl/GroupByKey/Reify+WriteMetadataToGS/Write/WriteImpl/GroupByKey/Write+WriteDocCoOccToGS/Write/WriteImpl/WindowInto(WindowIntoFn)+WriteDocCoOccToGS/Write/WriteImpl/GroupByKey/Reify+WriteDocCoOccToGS/Write/WriteImpl/GroupByKey/Write+WriteLinkedEntitiesToGS/Write/WriteImpl/WriteBundles/WriteBundles+WriteLinkedEntitiesToGS/Write/WriteImpl/Pair+WriteLinkedEntitiesToGS/Write/WriteImpl/WindowInto(WindowIntoFn)+WriteLinkedEntitiesToGS/Write/WriteImpl/GroupByKey/Reify+WriteLinkedEntitiesToGS/Write/WriteImpl/GroupByKey/Write+WriteJSONDocumentToGS/Write/WriteImpl/WindowInto(WindowIntoFn)+WriteJSONDocumentToGS/Write/WriteImpl/GroupByKey/Reify+WriteJSONDocumentToGS/Write/WriteImpl/GroupByKey/Write+WriteJSONBaseNLPToGS/Write/WriteImpl/Pair+WriteJSONBaseNLPToGS/Write/WriteImpl/WindowInto(WindowIntoFn)+WriteJSONBaseNLPToGS/Write/WriteImpl/GroupByKey/Reify+WriteJSONBaseNLPToGS/Write/WriteImpl/GroupByKey/Write+WriteNamedEntitiesToGS/Write/WriteImpl/Pair+WriteNamedEntitiesToGS/Write/WriteImpl/WindowInto(WindowIntoFn)+WriteNamedEntitiesToGS/Write/WriteImpl/GroupByKey/Reify+WriteNamedEntitiesToGS/Write/WriteImpl/GroupByKey/Write failed., A work item was attempted 4 times without success. Each time the worker eventually lost contact with the service. The work item was attempted on:
datachunk7-03250851-9xfb-harness-jgn7,
datachunk7-03250851-9xfb-harness-jgn7,
datachunk7-03250851-9xfb-harness-3hl5,
datachunk7-03250851-9xfb-harness-g6m5
Так что этопоказывает, что WriteNamedEntitiesToGS
сбой, который имел следующее определение:
named_entities | 'WriteNamedEntitiesToGS' >> WriteToText(known_args.output, file_name_suffix='_named_ent.json.gz')
Таким образом, это показывает, что проблема исходит от WriteToText, который связан выше.