apache / apache/beam

Data loaded using ReadAllFromText is not projected properly as side input

Open
#20,247 0 comments 0 reactions 0 assignees View on GitHub
bug files io P2 python
Dominant language
Java
Stars
8.7k
Forks
4.7k
Avg merge
1d 20h
Merged PRs (30d)
196

Description

*Context:*

Data Enrichment Pattern with 2 Sources. 

Source 1:  Google Cloud PubSub delivering JSON messages

Source 2:  Google Cloud Storage Files (acts as a Side Input) 

*Steps:* 

1. Load the data from GCS (Google Cloud Storage) using ReadAllFromText based on file path inside a PCollection and convert each record as a tuple with 2 fields

2. Project the Tuple loaded in step 1 as a side input using Pvalue.ASDict to the main input that is being loaded from PubSub.

3. Expectation is that the side inputs should be available but for some reason AsDict is not containing all the data that was loaded from GCS

 

*Possible Issues:*

      Below are few possible issues that can be ruled out as I already validated them.
- Window Mismatches -  Main Input window is within the scope of Side Input window.
- Delay in updating Side Input State -  Pipeline has just 1 VM and Side Input has only 8 json messages and total size of side input is around 40 KB

 

*Troubleshooting:*
- Working fine in a DirectRunner   
- Validated that ReadAllFromText transform is loading all the data properly from multiple files with subsequent transform building KV as well. However when the output of KV transform is used as a sideinput using ASDict() for some reason certain elements are skipped and not available inside look up.

*Code* 

[Example Code](https://github.com/GoogleCloudPlatform/professional-services/blob/master/examples/dataflow-python-examples/streaming-examples/slowlychanging-sideinput/sideinput_refresh/main.py#L234) for reference

 

 

 

Imported from Jira [BEAM-10148](https://issues.apache.org/jira/browse/BEAM-10148). Original Jira may contain additional context.
Reported by: prathapreddy22.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.