title: Efficient ParDo setup or start_bundle for side input
body: <p>list A:  25M hashes<br>
  list B: 175K hashes</p>
  
  <p>I want to check each hash in list B for existence in list A. For this I have a ParDo function and I yield when it's not matched. This is a deduplication process.</p>
  
  <p>How do I set up this ParDo efficiently, now I do a side input of list A while processing list B. But shouldnt the side input go to setup() or start_bundle() of the ParDo so I store the lookup list (A) in the worker just once?</p>
  
  <pre><code>class Checknewrecords(beam.DoFn):
      def process(self, element, hashlist):
          if element['TA_HASH'] not in hashlist:
              yield element
          else:
              pass
  </code></pre>
  
  <p>If you have a the answer please include a link to the documentation because I did not find any good documentation for the Python version.</p>
  
  <ul>
  <li>transformed_records is a PCollection from a previous transformation</li>
  <li><p>current_data is a PCollection from a BigQuery.read</p>
  
  <p>new_records = transformed_records | 'Checknewrecords' >> beam.ParDo(Checknewrecords(), pvalue.AsList(current_data))</p></li>
  </ul>